MySQL預存程序動態建立表,資料分表

來源:互聯網
上載者:User
BEGINDECLARE `@i` int(11);DECLARE `@siteCount` int(11);DECLARE `@sqlstr` VARCHAR(2560);DECLARE `@sqlinsert` VARCHAR(2560);  //以上聲明變數SELECT COUNT(0) into `@siteCount` FROM tbl_base_site;  //計算表tbl_base_site的記錄總條數set `@i`=1;WHILE (`@i`-1)*300<`@siteCount` DO  //while迴圈執行SET @sqlstr = CONCAT('CREATE TABLE tbl_base_syslog',`@i`,'(syslog_id INT(11) AUTO_INCREMENT PRIMARY KEY,create_user VARCHAR(32),description text,create_time datetime,site_id INT(11),ip VARCHAR(64),version_id SMALLINT(2),module_identity VARCHAR(64),right_name VARCHAR(64))');prepare stmt from @sqlstr;execute stmt;//以上實現動態建立表SET @sqlinsert = CONCAT('INSERT INTO tbl_base_syslog',`@i`,'(syslog_id,create_user,description,create_time,site_id,ip,version_id,module_identity,right_name)SELECT syslog_id, create_user, description, create_time, site_id, ip, version_id, module_identity, right_name FROM tbl_base_syslog WHERE site_id IN (select tbs.site_id from (select site_id from tbl_base_site limit ',`@i`*300,',300) as tbs) ORDER BY syslog_id');prepare stmt from @sqlinsert;execute stmt;//以上實現從一張表查詢記錄插入到動態建立的新表中SET `@i`= `@i`+1;END WHILE;END

VeryMule專註於打造自己的網上商城

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.