Maison > Article > base de données > "Les mots-clés OLD et NEW nous permettent d'accéder aux colonnes des lignes affectées par le déclencheur."
Comme nous le savons, dans la définition du déclencheur, nous pouvons faire référence à la colonne de la ligne qui est insérée, mise à jour ou supprimée. Voici comment les mots-clés OLD et NEW nous permettent d'accéder aux colonnes :
Nous devons ajouter un qualificatif OLD au nom de la colonne pour faire référence à la valeur de la ligne d'origine.
Nous devons ajouter le qualificatif NEW avant le nom de la colonne pour faire référence à la valeur de la nouvelle ligne.
Maintenant, OLD et NEW doivent être utilisés de manière appropriée car l'événement est déclenché
Déterminez ce qui est autorisé −
Dans le déclencheur INSERT, NEW.column_name représente la valeur de colonne à insérer dans la nouvelle ligne. L'ANCIEN n'est pas autorisé ici.
Dans le déclencheur DELETE, OLD.column_name représente la valeur d'une colonne dans la ligne à supprimer. Ici, NEW n'est pas autorisé.
Dans le déclencheur UPDATE, OLD.column_name et NEW.column_name font respectivement référence à la valeur de la colonne dans la ligne avant et après la mise à jour de la ligne.
En d'autres termes, on peut dire que OLD doit être utilisé en lecture seule, tandis que NEW peut être utilisé pour lire ou modifier la valeur d'une colonne.
Ce qui suit est un exemple de déclencheur DELETE montrant comment OLD est utilisé −
mysql> CREATE TRIGGER studentinfo_after_delete -> AFTER DELETE -> ON student_info -> FOR EACH ROW FOLLOWS -> BEGIN -> DECLARE vuser varchar(30); -> SELECT USER() into vuser; -> INSERT INTO student_info_deleted(id,deleted_date,deleted_by) VALUES(OLD.id,SYSDATE(),vuser); -> END; // Query OK, 0 rows affected (0.25 sec)
Ce qui suit est un exemple du déclencheur INSERT, montrant comment utiliser NEW −
mysql> Create Trigger before_inser_studentage BEFORE INSERT ON student_age FOR EACH ROW BEGIN IF NEW.age < 0 THEN SET NEW.age = 0; END IF; END // Query OK, 0 rows affected (0.30 sec)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!