2017-08-08 1 views
0

Je ne sais pas comment y parvenir, je les 2 tableaux suivants:MYSQL insérer nouveau record dans le tableau 2 sur le disque de mise à jour Tableau 1

Table 1 
ID   > TYPE INT (Primary ID, auto increment) 
notes  > TYPE VARCHAR 

TABLE 2 ID > TYPE INT 
notes  > TYPE VARCHAR 
ETA   > TYPE VARCHAR 
InsertDate > TYPE DATE 

Tableau 2 est initialement table vide. J'ai actuellement une requête en PHP pour mettre à jour le tableau 1.notes sur un ID spécifique. Ce que je veux, c'est que chaque fois que j'émets une UPDATE à la table 1.notes, je veux que le tableau 2 ait les valeurs Table1.ID et Table1.notes à insérer. Aucune clé primaire n'est spécifiée pour Table2.ID. Donc, chaque fois que j'émets un UPDATE à Table1.Notes Table 2 obtient une autre nouvelle entrée avec ces valeurs. Je veux capturer des notes historiques pour les Notes du Tableau 1.

Im deviner un déclencheur est le meilleur pour cela? Je ne sais pas comment le faire

Répondre

0

Un déclencheur semble être une bonne option ici. Considérez l'extrait de code ci-dessous comme un exemple de ce que vous pourriez faire pour vos besoins. Notez que j'insère NULL comme la valeur ETA, parce que vous n'avez donné aucune information pour quelle devrait être la valeur nouvellement insérée de ETA. Pour le InsertDate, j'utilise la date actuelle.

DELIMITER // 

CREATE TRIGGER table1_after_update 
AFTER UPDATE 
    ON table1 FOR EACH ROW 

BEGIN 
    INSERT INTO table2 (notes, ETA, InsertDate) 
    VALUES (NEW.notes, NULL, CURDATE()) 

END; // 

DELIMITER ;