mysql - 为什么这个更新声明没有更新?
问题描述
我有以下更新声明:
update TradingEntityTemp tet
set tet.TypeId = (select ct.Id from CustomerType ct where ct.Name = tet.Name)
MySQL Workbench 输出以下信息:
“0 行受影响的行匹配:29 更改:0 警告:0”
“29”表示 TradingEntityTemp 中的行数。知道为什么 TradingEntityTemp.TypeId 没有通过此更新语句进行更新吗?
解决方案
结果消息通知 0 行受影响意味着所有行都已经有实际数据并且没有更改。无论如何,我建议使用连接条件将您的查询更改为更有效:
update
TradingEntityTemp tet
join CustomerType ct
on ct.Name = tet.Name
set
tet.TypeId = ct.Id;
推荐阅读
- javascript - 挑战循环遍历数组以删除 Google Apps 脚本中的行
- multilingual - 在 Linux 20.04 上添加 APL 键盘布局
- python - 在 Python PyQt5 中获取标准错误消息
- .net - ClickOnce 应用程序在下载 dll (Interop.Microsoft.Office.Interop.Word.dll) 时突然失败
- c++ - 来自 QGridLayout 的 QWidgets 不会占用所有空间
- apache-spark - Spark Kafka 数据消费包
- python - Jupyter 笔记本小部件
- discord - Discord.js 计时器,定期更新倒计时
- javascript - 如何通过提示乘以输入的数字?
- java - Doxygen 在尝试修补“修补输出文件”时崩溃,出现“错误:写入图 1 时出现问题!”