【发布时间】:2015-07-05 07:27:44
【问题描述】:
每次我尝试更新表时都会收到 1054 错误。这里是命令行客户端中的转录:
mysql>UPDATE Produtos SET prdNome = 'TESTE' WHERE prdCodigo=3;
ERROR 1054 (42S22): Unknown column 'prdCodigo' in 'where clause'
当 where 子句中使用的值存在于表中时会发生此错误。 如果我输入一个不存在的值,则没有错误,如下所示:
mysql>UPDATE Produtos SET prdNome = 'TESTE' WHERE prdCodigo=0;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
我做错了什么?
表创建如下,没有触发器。
CREATE TABLE `produtos` (
`prdCodigo` int(11) NOT NULL AUTO_INCREMENT,
`prdNome` varchar(255) DEFAULT NULL,
`prdCompra` float DEFAULT NULL,
`prdVenda` float DEFAULT NULL,
`prdEstoque` int(11) DEFAULT NULL,
PRIMARY KEY (`prdCodigo`) USING BTREE,
KEY `IX_NomeProdutos` (`prdNome`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
【问题讨论】:
-
您是否在SQLFiddle 中尝试过此操作,是否遇到同样的错误?
-
刚刚做到了。完全没有错误。
-
您能否包含“SHOW CREATE TABLE Produtos”的结果以及您可能在此表上使用的任何触发器的详细信息?
-
其实是有一个触发器导致了这个问题。谢谢@HorusKol!