首页 > 解决方案 > MySQL:使用来自另一个表列的随机值触发更新

问题描述

是否可以创建一个触发器,该触发器在该行的值发生更改时使用另一个表列中的随机值更新列。

在附图中,我有两个表,列表和用户。我希望 users.random 在用户表中的 first_name 或 last_name 随时更新/更改时使用 list.fruit 列中的新随机值进行更新。

如果 sam smith 更改为 andrew smith,那么我希望将梨更新为水果列表中的另一个随机水果。

这个例子已经被混淆了,但应该解释我想要实现的目标。

表

标签: mysqltriggers

解决方案


CREATE TRIGGER trigger_test
BEFORE UPDATE
ON users 
FOR EACH ROW
SET NEW.random = ( SELECT fruits
                   FROM list
                   ORDER BY RAND() LIMIT 1);

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=7c2b825177893766c054676f05f8e3ca


推荐阅读