ShowTriggers \ G******************************1.row************ **** ************* &"/> ShowTriggers \ G******************************1.row************ **** ************* &">

Maison >base de données >tutoriel mysql >Qu'arrive-t-il au déclencheur lorsque nous supprimons la table qui possède ce déclencheur ?

Qu'arrive-t-il au déclencheur lorsque nous supprimons la table qui possède ce déclencheur ?

WBOY
WBOYavant
2023-09-01 16:41:10927parcourir

Quarrive-t-il au déclencheur lorsque nous supprimons la table qui possède ce déclencheur ?

Si nous détruisons la table qui lui est associée, le déclencheur sera également détruit. C'est ce qu'on appelle la destruction explicite du déclencheur. Cela peut être compris avec un exemple -

Example

Supposons que nous ayons un déclencheur nommé "trigger_before_delete_sample" sur une table nommée "Sample". Désormais, si nous supprimons la table, les déclencheurs ci-dessus associés à la table seront également supprimés.

mysql> Show Triggers\G
*************************** 1. row ***************************
              Trigger: trigger_before_delete_sample
                Event: DELETE
                Table: sample
            Statement: BEGIN
         SET @count = if (@count IS NULL, 1, (@count+1));
         INSERT INTO sample_rowaffected values (@count);
END
               Timing: BEFORE
              Created: 2017-11-21 12:31:58.70
             sql_mode: ONLY_FULL_GROUP_BY,
                       STRICT_TRANS_TABLES,
                       NO_ZERO_IN_DATE,
                       NO_ZERO_DATE,
                       ERROR_FOR_DIVISION_BY_ZERO,
                       NO_AUTO_CREATE_USER,
                       NO_ENGINE_SUBSTITUTION
              Definer: root@localhost
 character_set_client: cp850
 collation_connection: cp850_general_ci
   Database Collation: latin1_swedish_ci
*************************** 2. row ***************************
              Trigger: before_inser_studentage
                Event: INSERT
                Table: student_age
            Statement: IF NEW.age < 0 THEN SET NEW.age = 0;
END IF
               Timing: BEFORE
              Created: 2017-11-21 11:26:15.34
             sql_mode: ONLY_FULL_GROUP_BY,
                       STRICT_TRANS_TABLES,
                       NO_ZERO_IN_DATE,
                       NO_ZERO_DATE,
                       ERROR_FOR_DIVISION_BY_ZERO,
                       NO_AUTO_CREATE_USER,
                       NO_ENGINE_SUBSTITUTION
              Definer: root@localhost
 character_set_client: cp850
 collation_connection: cp850_general_ci
   Database Collation: latin1_swedish_ci
2 rows in set (0.01 sec)

Le résultat défini ci-dessus montre qu'il existe deux déclencheurs dans la base de données, dont l'un est associé à la table nommée "Sample". Maintenant, à l'aide de l'instruction suivante, nous allons supprimer la table -

mysql> DROP table sample;
Query OK, 0 rows affected (0.26 sec)

Maintenant, à l'aide de l'instruction suivante, nous pouvons voir que les déclencheurs associés à la table nommée "Sample" sont également détruits.

mysql> Show Triggers\G
*************************** 1. row ***************************
              Trigger: before_inser_studentage
                Event: INSERT
                Table: student_age
            Statement: IF NEW.age < 0 THEN SET NEW.age = 0;
END IF
               Timing: BEFORE
              Created: 2017-11-21 11:26:15.34
             sql_mode: ONLY_FULL_GROUP_BY,
                       STRICT_TRANS_TABLES,
                       NO_ZERO_IN_DATE,
                       NO_ZERO_DATE,
                       ERROR_FOR_DIVISION_BY_ZERO,
                       NO_AUTO_CREATE_USER,
                       NO_ENGINE_SUBSTITUTION
              Definer: root@localhost
 character_set_client: cp850
 collation_connection: cp850_general_ci
   Database Collation: latin1_swedish_ci
1 row in set (0.01 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer