![](/img/trans.png)
[英]MySQL 5.7, sort table by column name using a variable in Stored procedure
[英]MySQL Stored Procedure using IN variable name not value
我定義了以下存儲過程:
DROP PROCEDURE IF EXISTS `Create_Domain_Table`;
DELIMITER ;;
PROCEDURE `Create_Domain_Table`(IN newTable VARCHAR(255))
BEGIN
CREATE TABLE newTable LIKE `domain_template`;
END;;
DELIMITER ;
但是當我調用程序時
CALL Create_Domain_Table('test_domain_table');
它創建一個新表,其名稱為newtable而不是test_domain_table。
我的語法有問題嗎?還是我引用的參數不正確?
謝謝
為此使用動態SQL ,
DROP PROCEDURE IF EXISTS `Create_Domain_Table`;
DELIMITER ;;
CREATE PROCEDURE `Create_Domain_Table`(IN newTable VARCHAR(255))
BEGIN
SET @sql = CONCAT('CREATE TABLE `', newTable,'` LIKE domain_template');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END;;
DELIMITER ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.