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数据库触发器无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章