通过触发器|将所有数据从一个表复制到另一个表phpMyAdmin的

时间:2018-05-25 06:57:19

标签: mysql

我对使用PHPMyAdmin的整个触发器事件都很陌生。我真的不知道自己做错了什么,但我想简单地将所有数据从table1复制到table2,就像存档或类似的东西一样。每次有插入时,都应将数据复制到table2

Table1有以下属性/字段:

ID
customerID
BookSN(SN = serialnumber)
created_at(when he lend the book)
updated_at(when he gave the book back)

Table2

Table1

具有相同的属性/字段

我试图解决这个问题:

delimiter //
CREATE TRIGGER `simple_copy` AFTER INSERT ON table1
FOR EACH ROW BEGIN
insert into table2(id, customerID, BookSN, created_at,updated_at)
select ?? -- i dont know what to write here...
from table1;
END;
//
delimiter ;

如果你能帮助我解决这个问题,我将非常感激。

2 个答案:

答案 0 :(得分:1)

如果table1中有一些您希望在table2中复制的数据,请先运行此操作:

INSERT INTO table2(id, customerID, BookSN, created_at, updated_at)
SELECT id, customerID, BookSN, created_at, updated_at
FROM table1;

然后,您现在可以使用触发器将新插入的数据从table1连续复制到table2

DELIMITER //
CREATE TRIGGER `simple_copy` AFTER INSERT ON table1
FOR EACH ROW BEGIN
INSERT INTO table2(id, customerID, BookSN, created_at, updated_at)
VALUE (new.id, new.customerID, new.BookSN, new.created_at, new.updated_at);
END//
DELIMITER ;

但如果table1为空,那么只需使用触发器即可。

答案 1 :(得分:0)

如果你想复制你必须使用的所有列,如

delimiter #
CREATE TRIGGER `simple_copy` AFTER INSERT ON table1
FOR EACH ROW 
BEGIN
insert into table2(id, customerID, BookSN, created_at,updated_at)
values (new.id, new.customerID, new.BookSN, new.created_at,new.updated_at)
from table1;
END#
delimiter ;