Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में DELETE ऑपरेशन के बाद ट्रिगर कैसे फायर करें?

MySQL में AFTER DELETE ट्रिगर बनाना

DELETE ऑपरेशन के बाद स्वचालित रूप से कोड चलाने के लिए AFTER DELETE ट्रिगर का उपयोग करें।

सिंटैक्स

DELIMITER //
CREATE TRIGGER yourTriggerName
AFTER DELETE ON yourTableName
FOR EACH ROW
BEGIN
    yourStatement1;
    ...
    yourStatementN;
END;
//
DELIMITER ;

टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName VARCHAR(100)
);
Query OK, 0 rows affected (0.62 sec)
mysql> INSERT INTO DemoTable(FirstName) VALUES('John');
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO DemoTable(FirstName) VALUES('Mike');
Query OK, 1 row affected (0.12 sec)

ट्रिगर बनाना

यह ट्रिगर डिलीट करने वाले उपयोगकर्ता और समय को उपयोगकर्ता-परिभाषित चरों में संग्रहीत करता है:

mysql> DELIMITER //
mysql> CREATE TRIGGER history_of_Table
    AFTER DELETE ON DemoTable
    FOR EACH ROW
    BEGIN
        SELECT USER() INTO @userName;
        SELECT NOW() INTO @deleteDatetime;
    END;
//
Query OK, 0 rows affected (0.18 sec)
mysql> DELIMITER ;

ट्रिगर परीक्षण करना

mysql> DELETE FROM DemoTable WHERE Id = 1;
Query OK, 1 row affected (0.26 sec)

ट्रिगर द्वारा सेट चर देखना

mysql> SELECT @userName;
+----------------+
| @userName      |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
mysql> SELECT @deleteDatetime;
+---------------------+
| @deleteDatetime     |
+---------------------+
| 2019-07-09 21:06:31 |
+---------------------+
1 row in set (0.00 sec)

महत्वपूर्ण: FOR EACH ROW का अर्थ है ट्रिगर प्रत्येक डिलीट की गई पंक्ति के लिए एक बार चलता है। OLD कीवर्ड से डिलीट की गई पंक्ति के मान प्राप्त कर सकते हैं (उदा. OLD.Id)।

  1. - MySQL ट्रिगर निष्पादन के दौरान होने वाली त्रुटियों को कैसे संभालता है?

    यदि ट्रिगर निष्पादन के दौरान कोई त्रुटि होती है, तो MySQL इसे निम्न प्रकार से संभालता है: यदि BEFORE ट्रिगर विफल होता है, तो संबंधित पंक्ति पर ऑपरेशन नहीं किया जाता है। एक BEFORE ट्रिगर पंक्ति को सम्मिलित या संशोधित करने के प्रयास से सक्रिय होता है, चाहे वह प्रयास बाद में सफल हो या नहीं। एक AFTER ट

  1. - MySQL टेबल में सभी डुप्लीकेट रिकॉर्ड कैसे डिलीट करें?

    टेबल से डुप्लीकेट रिकॉर्ड डिलीट करने के लिए हम DELETE कमांड का उपयोग कर सकते हैं। आइए अब एक टेबल बनाते हैं। mysql> create table DuplicateDeleteDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.60 sec) DuplicateDeleteDemo टेबल में रिकॉर्ड्स इन्सर्ट कर

  1. Python में MySQL डेटाबेस में INSERT के बाद ID कैसे प्राप्त करें? Python में MySQL डेटाबेस में INSERT के बाद ID कैसे प्राप्त करें?

    सबसे पहले, हमें नीचे दी गई आवश्यकताओं को पूरा करने की आवश्यकता है। निम्न पूर्वापेक्षाएँ हैं। हमें MySQL वर्जन 8.0.12 इंस्टॉल करना होगा। हमें Python वर्जन 3.6.3 (32 बिट) इंस्टॉल करना होगा। हमें pip कमांड की मदद से pymysql इंस्टॉल करना होगा। pip कमांड की मदद से pymysql इंस्टॉल करने के लिए। डेट