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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据库触发器无法正常工作相关的知识,希望对你有一定的参考价值。

我有两个表,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中插入行,第三次是这样的:

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

答案

你的触发器应该是

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;

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

以上是关于MySQL数据库触发器无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

无法从 onListItemClick 开始片段

使用片段共享过渡时返回过渡无法正常工作

时间驱动的触发器无法正常工作

OnClick 在片段的回收器适配器中无法正常工作

片段在较低版本的android中无法正常工作

mysql触发器不再正常工作