2 votes

Comment mettre à jour un timestamp avec une contrainte de clé étrangère mysql sur une mise à jour en cascade ?

J'ai deux tables :

  1. articles
  2. articles_détails

Si le contenu de la tabelle 2 est mis à jour, je veux que l'horodatage (changement lors de la mise à jour) de la tabelle 1 soit mis à jour.

J'ai donc défini dans MySql une contrainte de clé étrangère sur la cascade de mise à jour dans la table 2. Mais cela n'a aucun effet.

Comment l'horodatage de la table 1 peut-il être mis à jour si le contenu de la table 2 change ?

2voto

Tim Biegeleisen Points 53335

Vous pourriez utiliser un déclencheur après mise à jour :

DELIMITER //
CREATE TRIGGER items_details_after_update
AFTER UPDATE
ON items_details FOR EACH ROW
BEGIN
    UPDATE items
    SET timestamp = CURRENT_TIMESTAMP
    WHERE NEW.item_id = id;
END; //
DELIMITER ;

Cette réponse suppose qu'il existe une colonne item_id dans le item_details qui est une clé étrangère pointant vers une clé primaire. id dans la colonne parent items table.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X