Maison >base de données >tutoriel mysql >Comment puis-je mettre à jour la même table MySQL après une INSERT à l'aide d'un déclencheur ?

Comment puis-je mettre à jour la même table MySQL après une INSERT à l'aide d'un déclencheur ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-28 11:54:16303parcourir

How Can I Update the Same MySQL Table After an INSERT Using a Trigger?

MySQL - Déclencheur de mise à jour de la même table après insertion

Dans le domaine de la gestion de bases de données, rencontrer des scénarios dans lesquels une action sur une table nécessite une action ultérieure les mises à jour de la même table ne sont pas rares. Dans ce cas particulier, le défi consiste à y parvenir au sein d'un déclencheur.

Prenons le cas de la table ACCOUNTS, où lors de l'insertion d'une nouvelle ligne, une mise à jour correspondante est nécessaire vers une autre ligne dont la clé primaire correspond à la valeur de NEW.edit_on. Cependant, comme l'indique la documentation, la modification d'une table déjà utilisée dans l'instruction invoquante est interdite dans un déclencheur.

Pour surmonter cette limitation, il est suggéré d'utiliser une procédure stockée. Cette procédure stockée insérerait ou mettrait d'abord à jour la table cible, puis mettrait à jour la ligne supplémentaire, le tout dans le contexte d'une transaction. En validant manuellement les modifications, les deux actions peuvent être exécutées avec succès.

Bien que les subtilités de la création d'une telle procédure stockée puissent varier en fonction du système de base de données spécifique, reportez-vous à l'exemple fourni pour une compréhension plus détaillée. Cette approche contourne efficacement les limitations imposées par les déclencheurs et permet de réaliser des scénarios complexes de manipulation de tables.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn