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

Rumah >pangkalan data >tutorial mysql >Apakah yang berlaku kepada pencetus apabila kita memadamkan jadual yang mempunyai pencetus itu?

Apakah yang berlaku kepada pencetus apabila kita memadamkan jadual yang mempunyai pencetus itu?

WBOY
WBOYke hadapan
2023-09-01 16:41:10927semak imbas

Apakah yang berlaku kepada pencetus apabila kita memadamkan jadual yang mempunyai pencetus itu?

Jika kita memusnahkan jadual yang berkaitan dengannya, picu juga akan musnah. Ini dipanggil pemusnahan eksplisit pencetus. Ia boleh difahami dengan contoh -

Contoh

Andaikan kita mempunyai pencetus bernama "trigger_before_delete_sample" pada jadual bernama "Sample". Sekarang, jika kita memadamkan jadual, maka pencetus di atas yang dikaitkan dengan jadual juga akan dipadamkan.

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)

Set keputusan di atas menunjukkan bahawa terdapat dua pencetus dalam pangkalan data, salah satunya dikaitkan dengan jadual bernama "Sampel". Sekarang dengan bantuan pernyataan berikut kami akan memadamkan jadual -

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

Kini dengan bantuan pernyataan berikut kita dapat melihat bahawa pencetus yang dikaitkan dengan jadual bernama "Sampel" juga dimusnahkan.

rreeee

Atas ialah kandungan terperinci Apakah yang berlaku kepada pencetus apabila kita memadamkan jadual yang mempunyai pencetus itu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam