博客
关于我
mysql存储过程批量建表
阅读量:798 次
发布时间:2023-02-12

本文共 1934 字,大约阅读时间需要 6 分钟。

使用MySQL存储过程创建多个数据库表

通过MySQL存储程序,可以自动化地创建多个数据库表。在本文中,我们将编写一个MySQL存储程序,该程序可以自动创建100张表。这将节省手动编写SQL语句的时间,提高效率。

存储程序代码解析

以下是存储程序的代码:

#mysqlDELIMITER $$CREATE PROCEDURE `createTables`() BEGIN    DECLARE i INT;    DECLARE table_name VARCHAR(20);    DECLARE table_pre VARCHAR(20);    DECLARE sql_text VARCHAR(2000);        SET i = 0;    SET table_name = '';    SET table_pre = 'user_convenient_';    SET sql_text = '';        WHILE i < 100 DO        IF i < 10 THEN            SET table_name = CONCAT(table_pre, '0', i);        ELSE            SET table_name = CONCAT(table_pre, i);        END IF;                SET sql_text = CONCAT('CREATE TABLE ', table_name,                              '(user_id bigint(20) NOT NULL DEFAULT 0 COMMENT \'用户ID\',                               operate_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT \'数据更新时间\',                               PRIMARY KEY (user_id)) ENGINE=INNODB DEFAULT CHARSET=utf8');            SELECT sql_text;        SET @sql_text = sql_text;        PREPARE stmt FROM @sql_text;        EXECUTE stmt;        DEALLOCATE PREPARE stmt;                SET i = i + 1;    END WHILE;END$$DELIMITER ;#drop PROCEDURE createTables;删除存储程序#call createTables();执行存储程序#show procedure status;列出存储程序状态#show create procedure createTables显示存储程序的具体内容

存储程序功能说明

  • 存储程序名称createTables
  • 变量声明
    • i:用于计数器,控制循环次数
    • table_name:存储当前要创建的表名
    • table_pre:表名前缀,用于生成表名
    • sql_text:存储生成的SQL语句
  • 循环结构
    • WHILE i < 100 DO:执行100次循环
    • IF i < 10 THEN ... ELSE ...:表名生成规则
      • i小于10时,表名格式为user_convenient_0i
      • 其他情况下,表名格式为user_convenient_i
  • SQL语句生成与执行
    • 生成创建表的SQL语句
    • 通过SELECT sql_text;显示SQL语句
    • 使用PREPAREEXECUTE执行SQL语句
    • 使用DEALLOCATE PREPARE stmt;释放准备好的语句
  • 如何使用存储程序

  • 登录MySQL
  • 执行存储程序
    #call createTables();
  • 验证存储程序
    #show procedure status;#show create procedure createTables;
  • 注意事项

  • 表名长度限制table_name的长度为20字符,确保表名不超过这个限制
  • 表结构固定:所有表的字段和结构保持一致
  • 数据库权限:确保有权限创建、删除表和执行存储程序
  • 通过上述存储程序,您可以快速创建100张表,适用于需要大量标准化数据模型的场景。如有任何问题或需要进一步的帮助,请随时联系我。

    转载地址:http://srbfk.baihongyu.com/

    你可能感兴趣的文章
    mysql高级查询~分页查询
    查看>>
    mysql高级查询之多条件的过滤查询
    查看>>
    MySQL高级配置
    查看>>
    MySQL高频面试题
    查看>>
    MySQL高频面试题的灵魂拷问
    查看>>
    MySQL(1)的使用 | SQL
    查看>>
    MySQL(2)DDL详解
    查看>>
    MySQL(3)DML详解
    查看>>
    MySQL(4)运算符 | 关联查询详解
    查看>>
    MySQL(5)条件查询 | 单行函数 | 事务详解
    查看>>
    Mysql,group by分组查询、order by排序查询、join连接查询、union联合查询
    查看>>
    Mysql,sql文件导入和导出
    查看>>
    MYSQL:int类型升级到bigint,对PHP开发语言影响
    查看>>
    Mysql:mysql 5.X 报错 ERROR 1193 (HY000): Unknown system variable ‘validate_password_length‘
    查看>>
    MySQL:MySQL执行一条SQL查询语句的执行过程
    查看>>
    Mysql:SQL性能分析
    查看>>
    mysql:SQL按时间查询方法总结
    查看>>
    MySQL:什么样的字段适合加索引?什么样的字段不适合加索引
    查看>>
    MySQL:判断逗号分隔的字符串中是否包含某个字符串
    查看>>
    MySQL:某个ip连接mysql失败次数过多,导致ip锁定
    查看>>