SQL插入触发器后,将多行插入另一个表

时间:2015-05-14 17:08:45

标签: mysql sql-server triggers

所以我有下表:

Table: competence
Columns:
id  int(11) AI PK
name    varchar(400)
organization_id int(11)
competence_type_id  int(11)
competence_category_id  int(11)

以下用户表:

    Table: user
Columns:
id  int(11) AI PK
username    varchar(100)
password    varchar(100)
is_active   int(11)
user_type_id    int(11)
token   varchar(445)
organization_id int(11)
title_id    int(11)
image_path  varchar(100)
division_id int(11)

这两个表之间有以下联系:

Table: user_has_competence
Columns:
user_id int(11) PK
competence_id   int(11) PK
competence_level_id int(11)
progression varchar(45)
id  int(11) AI PK

现在我尝试在competence表上创建执行以下操作的触发器:

在权限表中插入一行后,找到具有相同organization_id的所有用户,然后为每个用户使用user_id和capability_id插入user_has_competence。

然而,我非常喜欢使用触发器,希望你们中的一个人能够把我推向正确的方向。

1 个答案:

答案 0 :(得分:6)

在mysql中,它可以作为

完成
delimiter //
create trigger competence_ins after insert on competence
for each row 
begin
 insert into user_has_competence (user_id,competence_id)
 select u.id,c.id from competence c
 join user u on u.organization_id = c.organization_id and c.organization_id = new.organization_id;
end;//

delimiter;