我知道我可以在mysql中关闭安全模式,所以我不想解决这个问题。
我有一张简单的table:
create table rubbish(
id int auto_increment primary key,
stuff text,
nonsense text
);
在这里 id
是主键。
打开安全模式后,我尝试以下操作:
update rubbish set nonsense=stuff where id=id; -- fails
update rubbish set nonsense=stuff where id is not null; -- fails
update rubbish set nonsense=stuff where id<>0; -- works
与mysql中的大多数错误消息一样,错误消息也没有帮助:
You are using safe update mode and you tried to update
a table without a WHERE that uses a KEY column
在所有情况下,我都使用了key列,因此消息没有解释任何内容。mysql实际需要我如何处理key列?
1条答案
按热度按时间umuewwlo1#
mysql数据库
SQL_SAFE_UPDATES
防止您在中误用密钥UPDATE
以及DELETE
声明。mysql引擎经过优化,可以理解给定的一些条件。主键永远不能为null,因此始终为空
true
. 同样的道理和
这些被认为是滥用钥匙。母鸡是禁止的。