PostgreSQL Créer un déclencheur après insert / mise à jour / supprimer

PostgreSQL Créer un déclencheur après insert / mise à jour / supprimer
Chaque fois qu'une action de changement définie (insert SQL, mise à jour, supprimer ou tronquer la déclaration) est réalisée sur un tableau défini, un déclencheur est un ensemble de séries d'événements qui sont exécutés automatiquement. Les déclencheurs peuvent être utilisés pour imposer des règles commerciales, authentifier les informations d'entrée et maintenir une piste d'audit. Les déclencheurs SQL sont implémentés selon le format SQL. Il comprend des structures utilisées dans plusieurs langages de programmation vous permettant de déclarer des variables locales, de surveiller le flux du processus avec des déclarations, d'allouer les résultats de la déclaration aux variables et de gérer les erreurs. De plus, une fois que vous avez construit un déclencheur pour quelque chose, comme une table, le déclencheur est immédiatement supprimé dès que la table est supprimée. Nous examinerons comment les déclencheurs postgresql fonctionnent tout au long de ce segment.

Syntaxe:

Ce qui suit est la syntaxe simple pour générer un déclencheur:

>> créer Trigger Trigger_name [avant | After | au lieu de] Nom d'événement sur table_name [---- Trigger Logic];

Voici l'explication de la requête générale ci-dessus.

  • Trigger_name: Nom d'un déclencheur
  • Avant, après, au lieu de: Termes qui décident quand le déclencheur serait actif
  • Nom de l'événement: Titre de l'occurrence qui pourrait déclencher le déclencheur (cela pourrait être, que ce soit à partir de l'insertion, de la mise à jour ou de la suppression)
  • Nom de la table: Spécifie le tableau sur lequel le déclencheur sera construit

Pour comprendre brièvement le concept de déclenchement, lancez le shell postgresql à partir des applications. Modifiez le serveur si vous souhaitez travailler sur un autre serveur, ou bien appuyez sur Entrée à partir de votre clavier. Ajoutez le nom de la base de données sur laquelle vous souhaitez travailler, sinon, laissez-le tel quel et appuyez sur Entrée. Comme vous pouvez le voir, nous travaillons actuellement sur le port 5432 par défaut; Vous pouvez également le changer. Après cela, fournissez un nom d'utilisateur autre que Postgres si vous souhaitez travailler avec un autre utilisateur, ou bien, laissez-le vide et appuyez sur le bouton Entrée. Maintenant votre shell de commande est prêt à être utilisé.

Déclencher sur la commande insert

Examinons l'exemple d'un déclencheur lorsque la commande d'insert a été utilisée comme un événement de déclenchement. Pour cela, nous devons créer deux nouvelles tables, E.g., «Employer» et «Audit». La table «employée» contiendra les dossiers personnels des employés d'une entreprise spécifique et le tableau «Audit» contiendra les informations sur le moment où les employés ont rejoint l'entreprise. Les requêtes pour créer les tables sont données ci-dessous.

>> Créer une table utilise (ID INTEGER NON NULL CLIE PRIMATIQUE, NOM VARCHAR (100) NON NULL, AGE VARCHAR (100) NON NULL, SALAIRE VARCHAR (100) NON NULL);
>> Créer un audit de table (empid entier et non nul, entrée_date varchar (100) pas null);

Vous devez créer une procédure qui sera automatiquement exécutée ou fonctionnera lorsque le déclencheur sera appelé. Il sera utilisé dans la prochaine commande de déclencheur de création. À partir de la commande ci-dessous, vous pouvez avoir une idée que nous avons créé une procédure "AuditLogFunc ()", qui renverra un déclencheur comme variable "$ examp_table $". La fonction commence par la clause Begin, suivie de l'instruction d'insertion. Cette instruction INSERT INSERT L'ID automatique et la date temporelle actuelle à l'aide de la fonction intégrée dans la table «Audit» et renvoyant ce résultat pour déclencher.

Il est temps de générer un déclencheur à l'aide de la commande Create Trigger. Nous créons un déclencheur nommé «emp_trig» sur la table «employés». La clause après insert sur signifie que ce déclencheur ne fonctionnera qu'après l'exécution de la commande d'insertion. Pour chaque ligne signifie que lors de l'exécution de chaque commande d'insert, ce déclencheur appellera et exécutera la procédure "AuditLogFunc ()" créée juste avant.

>> Créer un déclencheur EMP_Trig après l'insertion sur Utilisation pour chaque ligne Exécuter la procédure AuditLogFunc ();

Il est temps d'insérer des données dans la table «employer». Exécutez la commande insert ci-dessous dans le shell.

>> Insérer dans les valeurs d'emploi (id, nom, âge, salaire) («1», «Paul», «34», «60000»);

Jetez un œil à la table «employez». Les données ont été ajoutées avec succès avec la commande INSERT.

Maintenant avoir un aperçu de la table «Audit». Vous pouvez voir, il est également mis à jour en raison de la déclenchement «emp_trig» et AuditLogFunc ().

Commande de mise à jour de déclenchement

Nous allons maintenant examiner un exemple de déclencheur en utilisant la commande de mise à jour comme événement de déclenchement. Nous devons recommencer une nouvelle procédure avec le nom différent «Mise à jour» comme présenté dans l'image. Cette procédure insérera également des enregistrements dans le tableau «Audit» lors de l'appel.

Maintenant, créez un nouveau déclencheur nommé "Update_emp" à l'aide de la commande Create Trigger. Cela ne fonctionnera qu'après que l'exécution de la requête de mise à jour sur le tableau utilise et il appellera la procédure «mise à jour».

Mettez à jour le tableau «Utiliser» en définissant son identifiant sur «2».

Répondez les enregistrements d'un tableau «Utiliser» pour afficher les modifications comme annexées ci-dessous.

Comme vous pouvez le voir sur la table «Audit», il a été réorganisé à mesure que le tableau «utilise» a été mis à jour.

Déclencher sur la commande de suppression

Ouvrez Pgadmin 4 à partir des applications pour travailler sur GUI Postgresql. Sous le schéma «test», vous découvrirez une liste de tables. Créez une nouvelle table «EMP» et la même table «Audit».

Cette fois, nous invoquerons la commande Trigger par la commande de suppression. Vous trouverez ci-dessous le tableau «EMP» avec certains enregistrements.

Voici la table d'audit avec les deux mises à jour précédentes.

Créez une procédure nommée «del ()» pour déclencher l'insertion dans le tableau «Audit» lors de la suppression des enregistrements du tableau «EMP».

Créer un déclencheur «del_trig» à l'aide de la requête de déclenchement de création. Ce déclencheur exécutera la procédure «del» lorsqu'une clause de suppression sera effectuée sur le tableau «EMP».

Supprimons un enregistrement de la table «EMP» où l'employé «ID» est «5». Il supprimera une ligne de la table «EMP».

Retrouvez les enregistrements du tableau «EMP» et jetez un œil. Vous pouvez voir que la ligne a été supprimée où «l'identifiant» était «5».

Extraire maintenant les enregistrements de table «Audit» et vous remarquerez qu'il a été mis à jour car l'opération de suppression a été effectuée sur le tableau «EMP».

Conclusion:

Nous avons fait presque tous les exemples essentiels pour comprendre le concept de déclenchement tout en effectuant des opérations d'insertion, de mise à jour et de suppression.