2

私は3つのテーブルを持っています:

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

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

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

「event_invitees」に挿入した後に「通知」テーブルに挿入するトリガーを1つ作成しました

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 を取得することはできません。では、異なるテーブルから異なる値を取得し、それらをトリガー内の 1 つのテーブルに挿入する方法は?

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 に答える