首页 > 解决方案 > 为什么这个更新声明没有更新?

问题描述

我有以下更新声明:

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 没有通过此更新语句进行更新吗?

标签: mysql

解决方案


结果消息通知 0 行受影响意味着所有行都已经有实际数据并且没有更改。无论如何,我建议使用连接条件将您的查询更改为更有效:

update 
    TradingEntityTemp tet
join CustomerType ct
    on ct.Name = tet.Name
set 
    tet.TypeId = ct.Id;

推荐阅读