2015-05-14 84 views
1

所以我有如下表:SQL INSERT觸發器後插入多行到另一個表

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和competence_id插入user_has_competence。

不過我很喜歡觸發器,希望你們中的一個能夠把我推向正確的方向。

回答

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; 
+0

嗯用'關閉查詢;'我錯過了,讓我更新。 –

+0

非常感謝你的伴侶! :D +1你知道我會怎麼做,只要我創建一個用戶,它應該添加能力表中的所有能力,其中organization_id是相同的? –

+0

是的,它會非常相似。如果你提供了一個例子,我可以寫一個查詢。 –

相關問題