bugfix> 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 件
  • 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  空の場合は、トリガーを使用してすぐに行きます。

  • すべての列をコピーする場合は、次のように使用する必要があります

    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 ;
    
    

あなたの答え