gpt4 book ai didi

MySQL 存储过程使用 IN 变量名而不是值

转载 作者:行者123 更新时间:2023-11-30 23:20:34 25 4
gpt4 key购买 nike

我定义了以下存储过程:

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 ;

关于MySQL 存储过程使用 IN 变量名而不是值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15663124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com