2

我有两张具有多对多关系的表。这些表是

table user
idUser
name

table right
idRight
type

table user_has_right
idUser
idRight

当我插入一个具有我希望他拥有的权限的用户时,显然中间表(user_has_right)也必须有一些插入。假设我想插入 id = 1 和 name = 'test' 和 right = 'boss' 的用户,其中 boss 已经是 id = 1 表中的一行。中间表必须插入 (1,1)。我知道如何以编程方式执行此操作,但这可以通过插入触发器来完成吗?

谢谢你。

//我面临的问题是如何找到类型'boss'的idRight。也许是触发器内的嵌套选择?

//这个任务甚至可能吗?

4

1 回答 1

1

我遇到了这个老问题。如果您仍然对答案感兴趣,那么这里就是

CREATE TRIGGER tg_user_insert
AFTER INSERT ON `user`
FOR EACH ROW
  INSERT INTO user_has_right (idUser, idRight)
  SELECT NEW.idUser, idRight
    FROM `right`
   WHERE type = 'boss';

这是SQLFiddle演示

于 2013-07-17T04:40:03.470 回答