gpt4 book ai didi

mysql - 创建表不存在错误 "Operand should contain 1 coulmns"

转载 作者:行者123 更新时间:2023-11-29 10:13:53 25 4
gpt4 key购买 nike

我检查了有关此错误的一些问题,其中大多数在使用“SELECT”函数时遇到此错误,但在我的情况下,我使用 CREATE TABLE IF NOT EXIST 但遇到此错误,您可以检查我的代码以查看导致该错误的原因错误或者你们知道其他方法来做同样的事情。

我想创建一个按年付款的表,实际上应该是每月付款,但我现在正在按年尝试。

/* INSERT HERE THE LIST OF ALL EXISTING PAYMENT TABLES */
DROP TEMPORARY TABLE IF EXISTS T_distinctTable;
CREATE TEMPORARY TABLE T_distinctTable (
ctr int PRIMARY KEY AUTO_INCREMENT NOT NULL,
DisTable varchar (18)
);
INSERT INTO T_distinctTable (DisTable)
SELECT TABLE_NAME from information_schema.tables WHERE TABLE_SCHEMA = 'cams' and TABLE_NAME like concat ('%','Payment_20','%');

SET @endYearTemp = (select count(*) from T_distinctTable);

set @YearNow = (SELECT YEAR(CURDATE()));

set @TableName = concat('Payment_',@YearNow);

set @SQLTable = ('CREATE TABLE IF NOT EXISTS `', @TableName ,'` id int NOT NULL AUTO_INCREMENT, name CHAR(30),PRIMARY KEY (id)');
SELECT @SQLTable;
PREPARE stmt FROM @SQLTable;
EXECUTE stmt;

最佳答案

使用concat()连接字符串。将它们放在括号中并仅用逗号分隔是不行的。而且您忘记了 CREATE TABLE 的列定义周围的括号。

...
set @SQLTable = concat('CREATE TABLE IF NOT EXISTS `', @TableName ,'` (id int NOT NULL AUTO_INCREMENT, name CHAR(30),PRIMARY KEY (id))');
SELECT @SQLTable;
PREPARE stmt FROM @SQLTable;
EXECUTE stmt;
...

关于mysql - 创建表不存在错误 "Operand should contain 1 coulmns",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50441400/

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