Mysql 批量建表存储过程

最近项目中用到了使用存储过程批量建表的功能,记录下来:

USE db_test_3;
drop procedure if EXISTS `createTablesWithIndex`;
create procedure createTablesWithIndex()
BEGIN
        DECLARE `@i` int(11);
        DECLARE `@createSql` VARCHAR(2560);
        DECLARE `@createIndexSql1` VARCHAR(2560);
        DECLARE `@createIndexSql2` VARCHAR(2560);
        DECLARE `@createIndexSql3` VARCHAR(2560);

        set `@i`=0;
        WHILE  `@i`< 64 DO                 

                            -- `M_ID` bigint AUTO_INCREMENT PRIMARY KEY NOT NULL,
                            -- 创建表
                            SET @createSql = CONCAT(‘CREATE TABLE IF NOT EXISTS test_‘,`@i`,‘(
                                `t_ID` bigint   AUTO_INCREMENT PRIMARY KEY NOT NULL,
                                `t_CODE` varchar(30) DEFAULT NULL,
                                )‘
                            );
                            prepare stmt from @createSql;
                            execute stmt;                             

                            -- 创建索引
                            set @createIndexSql1  = CONCAT(‘create index `t_code` on test_‘,`@i`,‘(`t_code`);‘);
                            prepare stmt from @createIndexSql1;
                            execute stmt;
SET `@i`= `@i`+1;
            END WHILE;
END
时间: 2024-10-27 06:23:12

Mysql 批量建表存储过程的相关文章

mysql workbench建表时PK,NN,UQ,BIN,UN,ZF,AI

[intrinsic column flags] (基本字段类型标识) - PK: primary key (column is part of a pk) 主键 - NN: not null (column is nullable) 非空 - UQ: unique (column is part of a unique key) 唯一 - AI: auto increment (the column is auto incremented when rows are inserted) 自增

mysql workbench 建表时 PK,NN,UQ,BIN,UN,ZF,AI解释

mysql workbench 建表时 - PK: primary key (column is part of a pk) 主键 - NN: not null (column is nullable) 非空 - UQ: unique (column is part of a unique key) 唯一 - AI: auto increment (the column is auto incremented when rows are inserted) 自增 - BIN: binary (i

MYSQL批量创建表的存储过程

因为业务需要,创建了100个表,但是这些表的结构都是一样的,作为程序员,就是要解决这种重复劳动.然而这种事情还要单独写个php脚本的话太麻烦了吧,所以就干脆学了一下直接用Mysql存储过程怎么实现: 首先是创建表的:( LPAD(`@i`, 2, '0')的作用 是将1,2,3这些数字转化为'01','02','03') DROP PROCEDURE IF EXISTS `create_tables`; CREATE PROCEDURE create_tables () BEGIN DECLAR

Mysql的建表规范与注意事项

一. 表设计规范 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 建议使用InnoDB存储引擎. 存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE. 建议使用UNSIGNED存储非负数值. 建议使用INT UNSIGNED存储IPV4. 整形定义中不添加长度,比如使用INT,而不是INT(4). 使用短数据类型,比如取值范围为0-80时,使用TINYINT UNSIGNED. 不建议

在线ER模型设计:可视化MySQL数据库建表及操作

概述 ER模型使用可视化了实体存储的信息,以及直观的呈现了实体与实体的关系,在我们实际的应用系统开发过程中新建ER模型可以更好的理解业务模型,为以后的开发维护工作起到归纳总结的作用. [Freedgo Desgin]()是一款轻松.快速.协作地创建各种专业图表工具.让您在线创建流程图.系统部署图.软件架构图.UML.BPMN.ER模型,DFD,组织图,软件流程图,图表.免费试用.使用Freedgo Design创建数据库ER模型目前支持MySQL及基本的SQL语句建表.后期会进行功能拓展以支持S

MYSQL批量修改表前缀与表名sql语句

修改表名 ALTER TABLE 原表名 RENAME TO 新表名; 一句SQL语句只能修改一张表 show tables; 1. SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO db_', substring(table_name, 4), ';' ) FROM information_schema. TABLES WHERE table_name LIKE 'ct%'; 批量复制一下到Notepad++中,只保留sql语句,再复

MySQL批量建库导数据脚本

数据库名列表放入一个文件里面 # cat 00db.txt information_schema db_app_cms db_eop db_leader_cms db_leader_comment mysqldump出来的sql数据放入一个文件里面 # cat 00dbsql.txt -rw-r--r-- 1 root root    970701283 May 16 03:39 information_schema-2017-05-16-033001.sql -rw-r--r-- 1 root

jdbc mysql动态建表

通过检查来决定是否建表 如果表尚未被建立,就执行ptmt语句更新,在数据库中创建这个表, 如果这个表已经存在,就不执行建表操作了: package SQLCon; import java.sql.*; public class CreateTables { public static boolean HaveTable(String TableName) throws ClassNotFoundException, SQLException { Class.forName("com.mysql.

MySQL代码建表、增删改查(CRUD)

一.建表 create table Student ( number int auto_increment primary key,//定主键不一定勾上自增,但勾上自增一定得是主键. name varchar(10) not null,//设计界面,非空约束 sex bit, height decimal(8,2),//共8位数,小数点后2位数 birthday datetime ) 小数型 float double decimal 字符串型 varchar--------考虑长度 其他的不用,