mysql - WHERE 子句中具有无效数据的 MySQL 语句返回 0 行而不是失败
问题描述
希望这是一个简单的问题。我有下表:
+---------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------+------+-----+---------+-------+
| KEY_COL | int(11) | NO | PRI | NULL | |
| COL2 | int(11) | YES | | NULL | |
+---------+---------+------+-----+---------+-------+
2 rows in set (0.01 sec)
当我使用 KEY_COL 的 where 子句中的无效值对表进行更新时,它成功完成并返回 0 行受影响:
mysql> update LGSRV_TAB_DOC set COL2='9' where KEY_COL='A';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
我将 sql_mode 设置为 STRICT_ALL_TABLES,因此我期待更新失败,因为我为 KEY_COL 提供了无效值('A' 而不是数字)。有什么办法可以改变这种行为,以便更新失败并出现错误?我在 RHEL 6.9 上运行版本 8.0.11。
解决方案
推荐阅读
- r - 在 R 中解析 ascii-art
- mysql - 充当 PK 和 FK(子类型关系)的列命名约定
- c# - 如何统一使用委托来通知firebase已检索到文档
- java - Getter 用于在 dynamoDB 中添加值
- linux - 有没有办法自动化键盘按下并在 bash 脚本中发回其他击键?
- scala - 使用 Scala 生成随机序列
- c++ - 一个线程结束后如何让两个线程轮流执行各自的临界区
- javascript - moment.tzguess() 的所有可能结果是什么?
- tensorflow-federated - 服务器可以在 FL 的一个训练周期中向每个客户端广播最大数量的示例吗?这种行为是否侵犯了隐私?
- python-3.x - Pandas DataFrame 不会旋转。说重复索引