gpt4 book ai didi

MySQL 安全模式 : What Satisfies the Requirements?

转载 作者:行者123 更新时间:2023-11-29 07:30:36 30 4
gpt4 key购买 nike

我知道我可以关闭 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 实际上要求我对键列做什么?

最佳答案

MySQL SQL_SAFE_UPDATES 防止您在 UPDATEDELETE 语句中滥用键。 MySQL 引擎经过优化以理解给定的一些条件。


... WHERE `id` IS NOT NULL;

主键永远不能为空,因此它始终为 true。同样

... WHERE `id`=`id`;

... WHERE TRUE;

这些被视为滥用 key 。因此它们是被禁止的。

关于MySQL 安全模式 : What Satisfies the Requirements?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51452334/

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