我有一个像这样的表:
user_level
uid | level_order | current_level
---------------------------------
1 | 1,2,3 | 1
2 | 4,5,6 | 4
3 | 7,8,9 | 7
现在,如果我为特定用户更新level_order字段,我想使用触发器或过程更新current_level。
例如,如果我运行此查询:
update user_level set level_order = '21,22,23' where uid=1;
那么表应该像这样更新:
uid | level_order | current_level
---------------------------------
1 | 21,22,23 | 21
2 | 4,5,6 | 4
3 | 7,8,9 | 7
是否可以使用trigger
或procedure
。
我正在使用MYSQL
。
答案 0 :(得分:1)
我认为你不需要触发器。你可以像这样直接更新它。
update user_level
set level_order = '21,22,23',
current_level=SUBSTRING_INDEX('21,22,23', ',', 1)
where uid=1;
答案 1 :(得分:0)
尝试以下代码
create trigger AutoUpdateCurrentLevelFromUserLevel
after update
on UserLevel
for each row
set CurrentLevel="{your value here}"
答案 2 :(得分:0)
您可以使用触发器来实现相同的目标。触发器在上面提到的用于实现约束的场景中非常有用。使用更新触发器。您还可以将更新嵌入查询本身的新行。