在进行任何更新后,我想要一个名为transitions
的表格,我想更改所有行的值。
我正在使用以下触发器,它只更改我正在进行更新的ROW。
CREATE TRIGGER signaturetrigger BEFORE UPDATE ON `transactions` FOR EACH ROW
BEGIN
SET New.signature = '288';
END
我正在尝试将所有行更改为signature = 288
,如何修改触发器以实现此目的?我认为使用FOR EACH ROW
就足够了。
提前致谢。
答案 0 :(得分:1)
您可以在更新触发器后使用 update
语句:
CREATE TRIGGER signaturetrigger AFTER UPDATE ON `transactions`
FOR EACH ROW
BEGIN
UPDATE transactions
SET New.signature = '288';
END;
然而,这似乎是一件非常奇怪的事情。
考虑另一种选择:只需在表中添加UpdatedAt
列并更新该行中的签名即可。然后,当您想要最近的签名使用时:
select signature
from transactions
order by UpdatedAt desc
limit 1;
transactions(UpdatedAt, signature)
上的索引会使这个速度非常快。并且,更新将比更新所有行更快,更快。