1

我试图在 mySQL 中创建一个触发器,当我进行插入时,它将使用另一个表中的数据更新一个列。

我有表:rtsEP_groups 有:id,name

和表:rtsEP_users 具有:id、组(以及许多其他人)

当 rtsEP_users 中有新插入时,我想使用 rtsEP_groups 中的“id”更新 rtsEP_users 中的“组”,其中“name”是“Student”。

我正在研究这个触发器,但不确定它是否正确,以及如何完成它。如何更新正确的列。

CREATE TRIGGER defaultGroup
AFTER INSERT ON rtsEP_users
BEGIN
DECLARE _group_id INTEGER;
SELECT id INTO _group_id FROM rtsEP_groups WHERE name = "Student"
UPDATE rtsEP_users SET groups = _group_id WHERE 
4

1 回答 1

0

使用BEFORE INSERT代替AFTER,因此New代表可以更新的插入行。试试这个

CREATE TRIGGER defaultGroup BEFORE INSERT ON rtsEP_users
FOR EACH ROW
SET New.groups = (SELECT id FROM rtsEP_groups WHERE name = "Student");
于 2012-05-23T08:50:43.623 回答