mysql存儲過程批量建表

用MySql的存儲過程創建100張表mysql

#mysql

DELIMITER $$

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 顯示存儲過程的具體內容
相關文章
相關標籤/搜索