mysql創建存儲過程,批量建表分表00到99


 

 

 

 

這里以sqlyong為軟件示例:

 

--創建存儲過程
DELIMITER $$ CREATE PROCEDURE `createTablesWithIndex`() BEGIN DECLARE `@i` INT(
11); DECLARE `@createSql` VARCHAR(2560); DECLARE `@createIndexSql1` VARCHAR(2560); DECLARE `@createIndexSql2` VARCHAR(2560); DECLARE `@createIndexSql3` VARCHAR(2560); DECLARE `@j` VARCHAR(10); SET `@i`=0; WHILE `@i`< 100 DO IF `@i` < 10 THEN SET `@j` = CONCAT(0,`@i`); ELSE SET `@j` = `@i`; END IF; -- `M_ID` bigint AUTO_INCREMENT PRIMARY KEY NOT NULL, -- 創建表 SET @createSql = CONCAT('CREATE TABLE IF NOT EXISTS table_',`@j`,'( `newsid` VARCHAR(255) NOT NULL , `classId` VARCHAR(255) DEFAULT NULL, `kindId` VARCHAR(255) DEFAULT NULL, `myOther` VARCHAR(255) DEFAULT NULL, `headTitle` VARCHAR(255) DEFAULT NULL, `content` VARCHAR(255) DEFAULT NULL, `connectRealtive` VARCHAR(255) DEFAULT NULL, `author` VARCHAR(255) DEFAULT NULL, `editor` VARCHAR(255) DEFAULT NULL, `newsFrom` VARCHAR(255) DEFAULT NULL, `top` VARCHAR(255) DEFAULT NULL, `newsTime` VARCHAR(255) DEFAULT NULL, `hits` VARCHAR(255) DEFAULT NULL, `state` VARCHAR(255) DEFAULT NULL, `tag` VARCHAR(255) DEFAULT NULL ) ' ); PREPARE stmt FROM @createSql; EXECUTE stmt; -- 創建索引 SET @createIndexSql1 = CONCAT('create index `newsid` on table_',`@j`,'(`newsid`);'); PREPARE stmt FROM @createIndexSql1; EXECUTE stmt; SET `@i`= `@i`+1; END WHILE; END

 

 

 

最后新建一個查詢

CALL createTablesWithIndex()  執行

最后會執行批量建表操作

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM