我正在使用MySQL,但是,它在更新表时显示错误1175

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

在MySQL中 我正在处理更新, 创建表猫( cat_id INT 自动递增, 名称 VARCHAR(100), 品种 VARCHAR(100), 年龄 INT, 主键(cat_id) );

插入猫(姓名、品种、年龄) 值('林戈','虎斑',4), ('辛迪','缅因猫',10), (“邓布利多”、“缅因猫”,11), ('鸡蛋', '波斯语', 4), ('迷雾', '虎斑', 13), (“乔治迈克尔”,“布娃娃”,9), ('杰克逊', '斯芬克斯', 7);

当我尝试更新表格时

更新猫集品种='短毛猫',其中品种='虎斑猫';

正在显示

错误代码:1175 您正在使用安全更新模式

我希望表格应该根据查询进行更新。

sql sql-update mysql-workbench mysql-error
1个回答
0
投票

该错误意味着您的 MySQL 会话启用了安全更新选项。

如果启用此选项,则在 WHERE 子句或 LIMIT 子句中不使用键的 UPDATE 和 DELETE 语句会产生错误。此外,对生成(或估计生成)非常大结果集的 SELECT 语句也有限制。如果您在选项文件中设置了此选项,则可以在命令行上使用 --skip-safe-updates 来覆盖它。有关此选项的更多信息,请参阅使用安全更新模式 (--safe-updates)。

https://dev.mysql.com/doc/refman/8.0/en/mysql-command-options.html#option_mysql_safe-updates

您有两种选择来解决此问题:

  1. 使用主键更新记录。
UPDATE cats SET breed='Shorthair' WHERE cat_id=<id>;
  1. 通过以下方式禁用
    safe-updates
    选项:
SET SQL_SAFE_UPDATES = 0;
© www.soinside.com 2019 - 2024. All rights reserved.