博客
关于我
mysql存储过程批量建表
阅读量:797 次
发布时间: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/

    你可能感兴趣的文章
    nacos注册失败,Feign调用失败,feign无法注入成我们的bean对象
    查看>>
    nacos源码 nacos注册中心1.4.x 源码 nacos源码如何下载 nacos 客户端源码下载地址 nacos discovery下载地址(一)
    查看>>
    nacos源码 nacos注册中心1.4.x 源码 spring cloud alibaba 的discovery做了什么 nacos客户端是如何启动的(二)
    查看>>
    nacos源码 nacos注册中心1.4.x 源码 如何注册服务 发送请求,nacos clinet客户端心跳 nacos 注册中心客户端如何发送的心跳 (三)
    查看>>
    Nacos源码分析:心跳机制、健康检查、服务发现、AP集群
    查看>>
    nacos看这一篇文章就够了
    查看>>
    Nacos简介、下载与配置持久化到Mysql
    查看>>
    Nacos简介和控制台服务安装
    查看>>
    Nacos管理界面详细介绍
    查看>>
    Nacos编译报错NacosException: endpoint is blank
    查看>>
    nacos自动刷新配置
    查看>>
    nacos运行报错问题之一
    查看>>
    Nacos部署中的一些常见问题汇总
    查看>>
    NACOS部署,微服务框架之NACOS-单机、集群方式部署
    查看>>
    Nacos配置Mysql数据库
    查看>>
    Nacos配置中心中配置文件的创建、微服务读取nacos配置中心
    查看>>
    Nacos配置中心集群原理及源码分析
    查看>>
    nacos配置在代码中如何引用
    查看>>
    nacos配置新增不成功
    查看>>
    nacos配置自动刷新源码解析
    查看>>