2

我有 3 张桌子:

event:
---------------------
event_id | uid | date
---------------------

event_invitees
----------------------
invitees_id | event_id
---------------------- 

notification
-----------------
uid | invitees_id
-----------------

我创建了一个触发器,它将在插入“event_invitees”后插入“通知”表

delimiter |
create trigger eventNotificationTrigger after insert on event_invitees
for each row 
begin
declare id int(12);
set id = (select uid from event where event_id=new.event_id);
insert into notification (invitees_id,uid) select invitees_id,@id from event_invitees where event_id=new.event_id;
end;
|

但它无法从事件表中获取 uid。那么如何从不同的表中获取不同的值并将它们插入到触发器中的一个表中呢?

4

1 回答 1

1

去除那个@

insert into notification (invitees_id,uid) 
select invitees_id, @id from event_invitees where ...
                    ^-------------------------------------here

您创建的变量declare不会被@. 只有你创建的那个set。例子:

declare id int(12);
select 1 into id;
select id;

set @id = (select 1);
select @id;
于 2013-03-31T10:54:21.750 回答