版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/5818363
MySQL存儲過程使用表名做參數
原創文章,chszs版權所有!
如要轉發,請聯系chszs!
盜貼行為将受起訴!
MySQL存儲過程使用表名做參數動态建立表的例子。
一同學向我請教在MySQL的存儲過程中,如何使用表名做參數動态建立表。
這個問題在MySQL 5.0以前非常麻煩,但是在MySQL 5.0.13版之後,由于引入了PREPARE語句,一切變得簡單了。
此問題在網上搜尋的文章一般都是錯誤的!
例子如下(已驗證):
DROP PROCEDURE IF EXISTS `newtable`;
CREATE PROCEDURE `newtable`(IN tname varchar(64))
BEGIN
SET @sqlcmd = CONCAT('CREATE TABLE ', tname, ' (id int NOT NULL AUTO_INCREMENT, name varchar(64) DEFAULT NULL, PRIMARY KEY (`id`))');
PREPARE stmt FROM @sqlcmd;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END;
call newtable('abc');