我正在使用Mysql Workbench 8.0.12,我有一个包含三列的表(tblproduction
):
idProduction INT PK AI
dateProduction DATETIME
statusProduction VARCHAR(15)
例如,当我尝试将列statusProduction
的值更改为以下查询时,从“ queue”更改为“ done”(SELECT,INSERT和DELETE查询都可以):
UPDATE tblproduction
SET statusProduction = 'done'
WHERE idProduction=1;
系统返回"Error Code: 1241. Operand should contain 1 column(s)."
我进行了一些研究,发现此错误代码与语法错误有关,但是我在查询中没有发现任何问题。
如果我尝试执行以下操作:
UPDATE tblproduction
SET statusProduction = 'done'
WHERE idProduction='a';
尽管实际上影响了0行,但系统实际上运行了查询,但是如果我尝试这样做,它也会给我同样的错误消息:
UPDATE tblproduction
SET statusProduction = 'done'
WHERE idProduction='1';
我真的不知道出什么问题了,我知道这是一个愚蠢的问题,但是是否有人可以帮助我。
答案 0 :(得分:0)
please try using this method :
I have created a table and inserted the record like this :
select * from tblproduction;
+--------------+---------------------+------------------+
| idProduction | dateProduction | statusProduction |
+--------------+---------------------+------------------+
| 1 | 2018-11-19 08:22:11 | queue |
+--------------+---------------------+------------------+
use update query :
UPDATE `test`.`tblproduction` SET `statusProduction` = 'done' WHERE `tblproduction`.`idProduction` =1;
got result :
--------------+---------------------+------------------+
| idProduction | dateProduction | statusProduction |
+--------------+---------------------+------------------+
| 1 | 2018-11-19 08:22:11 | done |
+--------------+---------------------+------------------+
答案 1 :(得分:0)
我无法重现您的问题,请参阅https://rextester.com/OQI5184
#MySQL 5.7.12
#'\\' is a delimiter
DROP TABLE IF EXISTS tblProduction;
CREATE TABLE IF NOT EXISTS tblProduction (
idProduction INT NOT NULL AUTO_INCREMENT
, dateProduction DATETIME NOT NULL
, statusProduction VARCHAR(15) NOT NULL
, PRIMARY KEY (idProduction)
)
;
INSERT INTO tblProduction(dateProduction,statusProduction) VALUES ('2018-11-20','start');
SELECT * FROM tblProduction;
UPDATE tblproduction
SET statusProduction = 'done'
WHERE idProduction=1;
SELECT * FROM tblProduction;
结果:
+---+--------------+---------------------+------------------+
| | idProduction | dateProduction | statusProduction |
+---+--------------+---------------------+------------------+
| 1 | 1 | 20.11.2018 00:00:00 | start |
+---+--------------+---------------------+------------------+
+---+--------------+---------------------+------------------+
| | idProduction | dateProduction | statusProduction |
+---+--------------+---------------------+------------------+
| 1 | 1 | 20.11.2018 00:00:00 | done |
+---+--------------+---------------------+------------------+
答案 2 :(得分:0)
所以问题既不是查询也不是表,该表上有一个更新触发器(我放下进行测试的女巫,但没有工作),总之,我不得不放下数据库并全部创建再次没有创建触发器。这次更新查询成功了,我现在正在处理触发器,看看是否能找到问题所在