我知道我可以在 MySQL 中关闭安全模式,所以我不想解决这个问题。
我有一个简单的表:
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
在所有情况下,我都使用了键列,因此消息没有解释任何内容。MySQL 实际上需要我对键列做什么?