Heim > Datenbank > MySQL-Tutorial > Hauptteil

Was passiert mit dem Trigger, wenn wir die Tabelle löschen, die diesen Trigger enthält?

WBOY
Freigeben: 2023-09-01 16:41:10
nach vorne
912 Leute haben es durchsucht

Was passiert mit dem Trigger, wenn wir die Tabelle löschen, die diesen Trigger enthält?

Wenn wir die damit verbundene Tabelle zerstören, wird auch der Auslöser zerstört. Dies wird als explizite Zerstörung des Auslösers bezeichnet. Es kann anhand eines Beispiels verstanden werden:

Beispiel

Angenommen, wir haben einen Trigger mit dem Namen „trigger_before_delete_sample“ für eine Tabelle mit dem Namen „Sample“. Wenn wir nun die Tabelle löschen, werden auch die oben genannten, mit der Tabelle verknüpften Trigger gelöscht.

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)
Nach dem Login kopieren

Die obige Ergebnismenge zeigt, dass es zwei Trigger in der Datenbank gibt, von denen einer mit der Tabelle namens „Sample“ verknüpft ist. Mit Hilfe der folgenden Anweisung löschen wir nun die Tabelle -

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

Jetzt können wir mit Hilfe der folgenden Anweisung sehen, dass auch die mit der Tabelle „Sample“ verknüpften Trigger zerstört werden.

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)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas passiert mit dem Trigger, wenn wir die Tabelle löschen, die diesen Trigger enthält?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!