gpt4 book ai didi

mysql - 使用 PREPARE 和 EXECUTE 时遇到问题

转载 作者:行者123 更新时间:2023-11-29 14:13:28 26 4
gpt4 key购买 nike

我首先检查表是否存在。如果不存在,那么我将创建一个,然后将数据插入其中。

DELIMITER $$

DROP PROCEDURE IF EXISTS `myDb`.`InsertData`$$

CREATE DEFINER=`root`@`%` PROCEDURE `InsertData`(
IN _P1 VARCHAR(255),
IN _P2 DATETIME,
IN _P3 TEXT,
IN _TableName VARCHAR(255)
)
BEGIN
DECLARE TableCount INT(1);

SET TableCount = (SELECT COUNT(table_name)
FROM information_schema.tables
WHERE table_schema = 'myDb' AND table_name = _TableName);

IF(TableCount = 0) THEN
SET @s = CONCAT('CREATE TABLE IF NOT EXISTS `myDb`.`',_TableName,'` (
`P1` VARCHAR(255),`P2` DATETIME, `P3` TEXT ;');
PREPARE stmt3 FROM @s;
SELECT stmt3;
EXECUTE stmt3;
END IF;
SET @s = CONCAT('INSERT INTO `myDb`.`',_TableName,'` ( P1, P2, P3)
VALUES (' + _P1 + ',' + _P2 + ',' + _P3 + ')');
PREPARE stmt3 FROM @s;
EXECUTE stmt3;

END$$

DELIMITER ;

程序编译成功,但是当我运行它时,出现错误:

Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near '' at line 2

最佳答案

您缺少)

SET @s = CONCAT('CREATE TABLE IF NOT EXISTS `myDb`.`',_TableName,'` ( 
`P1` VARCHAR(255),`P2` DATETIME, `P3` TEXT );');
^----------here

关于mysql - 使用 PREPARE 和 EXECUTE 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13086985/

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