У меня две таблицы, таблица1 и таблица2. 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;
Каждый раз, когда строка вставляется в таблицу1, эта строка также должна быть вставлена в таблицу2 с помощью созданного триггера. Но после того, как я вставляю строку 'a' в таблицу1, это кажется правильным.
После того, как я вставляю вторую строку 'b' в таблицу1, результат оказывается неправильным.
.
Во второй раз такая же строка в таблице2. Затем я продолжаю вставлять строки в таблицу1, третий раз выглядит так:
Я застрял здесь, потому что не могу найти решение. Надеюсь получить вашу помощь. Заранее спасибо.
Ваш триггер должен быть либо
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;
Второй вариант не рекомендуется. Но добавлено просто, чтобы показать вам, где проблема