簡體   English   中英

MySQL存儲過程使用IN變量名而不是值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM