所以我有这段代码,我想弄明白,但我不确定如何将我的输入从一个表复制到另一个表。
假设我有这个输入
Insert into TABLE Value ('blah');
我想获取刚刚插入的值并将其插入到另一个表中
Insert into ANOTHERTABLE value ('blah');
但在这种情况下,我不知道 blah 是什么,我只想从第一条语句中复制它。我该怎么做?
delimiter //
create table first_table
(fieldname varchar(20));
create table second_table
(fieldname varchar(20));
create trigger insert_into_second before insert on first_table
for each row begin
insert into second_table (fieldname)
values (new.fieldname);
end
//
insert into first_table values ('blah');
delimiter ;
select * from second_table;
上面的输出:
| FIELDNAME |
|-----------|
| blah |
fiddle 演示: http://sqlfiddle.com/#!2/e4384/1/0
请注意,在 fiddle 中,在仅插入到 FIRST_TABLE 之后,我从 SECOND_TABLE 中进行选择,它反射(reflect)了插入到 FIRST_TABLE 中。创建此触发器后,任何进入 FIRST_TABLE 的插入也将进入 SECOND_TABLE。
在 MySQL 中,默认语句分隔符通常是一个分号 ( ; ),必须将其更改为其他内容才能创建触发器,在这种情况下,我使用了双斜杠 (//),这就是你看到我设置的原因顶部的分隔符,然后回到末尾的分号。
我是一名优秀的程序员,十分优秀!