MySQL 更新失败,并显示“您正在使用安全更新模式,并且尝试更新没有使用 KEY 列的 WHERE 的表。”

问题描述 投票:0回答:1

我从 MySQL 收到此错误消息

错误 1175 (HY000):您正在使用安全更新模式,并且尝试更新没有使用 KEY 列的 WHERE 的表。

我使用的查询是这样的:

update custcopy set cust_contact=null where cust_id='1000000005';

我使用的MySQL的信息是“Ver 8.0.32 for Win64 on x86_64 (MySQL Community Server - GPL)”。我访问的表的方案如下:

+--------------+-----------+------+-----+---------+-------+
| Field        | Type      | Null | Key | Default | Extra |
+--------------+-----------+------+-----+---------+-------+
| cust_id      | char(10)  | NO   |     | NULL    |       |
| cust_name    | char(50)  | NO   |     | NULL    |       |
| cust_address | char(50)  | YES  |     | NULL    |       |
| cust_city    | char(50)  | YES  |     | NULL    |       |
| cust_state   | char(5)   | YES  |     | NULL    |       |
| cust_zip     | char(10)  | YES  |     | NULL    |       |
| cust_country | char(50)  | YES  |     | NULL    |       |
| cust_contact | char(50)  | YES  |     | NULL    |       |
| cust_email   | char(255) | YES  |     | NULL    |       |
+--------------+-----------+------+-----+---------+-------+

我查阅了mysql文档,发现这个说法可能有帮助,但我不太明白为什么。

我需要一个不会导致该错误的查询,并且禁用 SQL_SAFE_UPDATES 不是一个选项。

mysql security sql-update
1个回答
0
投票

您有两个选择:

  • 在 where 语句中使用主键
  • 禁用安全更新模式

要禁用:

  • 转到“编辑”-->“首选项”
  • 在“SQL 编辑器”下取消选中“安全更新”

Edit --> 偏好设置”/></a>
<a href=

© www.soinside.com 2019 - 2024. All rights reserved.