我有3个MySQL表:table1,table2 table3。我试图从table1和table2中提取特定内容,然后通过使用触发器将此提取的内容插入到table3中。我希望触发器在将数据插入table1
时插入此新记录CREATE trigger 'test_trigger' after insert on 'table1'
select a.fname, a.lname,b.address,b.contact
from table1 a
inner join table2
on a.table1_id=b.table2_id
insert into table3(fname,lname,address,contact)
END;
答案 0 :(得分:0)
INSERT语句可以插入SELECT语句选择的值:
insert into table3(fname, lname, address, contact)
select a.fname, a.lname, b.address, b.contact
from table1 a
inner join table2
on a.table1_id = b.table2_id
请注意,您可能希望WHERE子句限制每次插入的数据量。如上所述,每次将任何行插入Table1时,两个表中的所有可连接数据都将插入到Table3中。</ p>
答案 1 :(得分:0)
CREATE trigger 'test_trigger' after insert on 'table1'
insert into table3 (fname, lname, address, contact)
select a.fname, a.lname,b.address,b.contact
from table1 a
inner join table2 on a.table1_id=b.table2_id
where a.id = NEW.id
END;
未经测试,但应该有效...你已经在触发器中获得了OLD和NEW,这些可用于表别名(例如你的a),对于你只有NEW的插入,对于更新NEW和OLD,删除OLD