MySQL数据库触发器无法正常工作

时间:2017-12-26 08:48:03

标签: mysql triggers

我有两个表,table1和table2。 SQL就像:

create table table1(
  name varchar(100) PRIMARY key not null  
);

create table table2(
  id bigint PRIMARY key AUTO_INCREMENT,
  username varchar(100) not null );
  create trigger trigger_test
  after insert 
  on table1
  for each ROW
    insert into table2 (username)
    select new.name from table1;

每次在table1中插入一行时,该行也应该由我创建的触发器插入到table2中。但在我插入字符串' a'进入table1,似乎没错。

after inserting one row

我插入第二个字符串' b'进入table1,结果显示错误。

after insert two rows

第二次,table2中的同一行。然后,我继续在table1中插入行,第三次是这样的:

after insert three rows

我被困在这里,因为我找不到解决方案。希望得到你的帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

你的触发器应该是

create trigger trigger_test
after insert 
on table1
for each ROW
    insert into table2 (username)
    values (new.name);

或者

create trigger trigger_test
after insert 
on table1
for each ROW
    insert into table2 (username)
    select new.name from table1 where name = new.name;

不推荐第二种选择。但添加只是为了告诉你问题在哪里