gpt4 book ai didi

MySQL 过程语法

转载 作者:行者123 更新时间:2023-11-29 18:48:32 26 4
gpt4 key购买 nike

你们中有人知道如何在 MySQL 过程中使用 VARCHAR 参数吗?我尝试了以下方法:

DELIMITER $$
CREATE PROCEDURE `procedure_name` (IN name VARCHAR(64))
BEGIN
CREATE TABLE IF NOT EXISTS CONCAT(name) (`id` INT(11) PRIMARY KEY AUTO_INCREMENT, `uid` VARCHAR(32));
CREATE TABLE IF NOT EXISTS `name` (`id` INT(11) PRIMARY KEY AUTO_INCREMENT, `uid` VARCHAR(32));
CREATE TABLE IF NOT EXISTS name (`id` INT(11) PRIMARY KEY AUTO_INCREMENT, `uid` VARCHAR(32));
END$$
DELIMITER ;

CALL procedure_name('test');

但它总是创建一个名为“name”而不是“test”的表。

最佳答案

您需要使用 CONCATstatement 来构造查询并执行它,例如:

DELIMITER $$
CREATE PROCEDURE `procedure_name` (IN name VARCHAR(64))
BEGIN

SET @query = CONCAT('CREATE TABLE IF NOT EXISTS', name, '(`id` INT(11) PRIMARY KEY AUTO_INCREMENT, `uid` VARCHAR(32))');
PREPARE stmt FROM @query ;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

END$$
DELIMITER ;

关于MySQL 过程语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44467728/

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