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

问题描述 投票:0回答:1

我有两个表,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之后,似乎是正确的。

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

.

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

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

mysql triggers
1个回答
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;

不建议使用第二个选项。但只是为了向您展示问题所在

© www.soinside.com 2019 - 2024. All rights reserved.