如何创建MySQL触发器以将一个表中新插入的数据复制到另一个表中

时间:2014-11-26 21:17:44

标签: mysql triggers

我有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;

2 个答案:

答案 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