Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

यदि ट्रिगर में मौजूद नहीं है

DROP TRIGGER IF EXISTS before_delete_concept_access;
DELIMITER //
CREATE TRIGGER before_delete_concept_access
    BEFORE DELETE ON `concept_access` FOR EACH ROW
    BEGIN
        IF (SELECT COUNT(*) FROM concept_access_log WHERE map=OLD.map 
                          AND accesstype=OLD.accesstype AND startdate=OLD.startdate AND stopdate=OLD.stopdate) = 0 THEN
            INSERT INTO concept_access_log (map, accesstype, startdate, stopdate)
            VALUES (OLD.map, OLD.accesstype, OLD.startdate, OLD.stopdate);
        END IF;
    END//
DELIMITER ;

मैं उपयोग नहीं कर रहा हूं not exists , बस परीक्षण करें कि क्या मैच की संख्या 0 से अधिक है

आपका कोड मेरी मशीन पर अच्छा चलता है, आपका MySQL संस्करण क्या है?

mysql> select version();
+------------+
| version()  |
+------------+
| 5.1.56-log |
+------------+
1 row in set (0.00 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. यूनिकॉर्न रेल के लिए वास्तव में एक डीबी कनेक्शन पूल की आवश्यकता है?

  2. AWS RDS इंस्टेंस के लिए डेटाबेस टाइमज़ोन कैसे सेट करें?

  3. MAMP-Windows पर MySQL सर्वर प्रारंभ नहीं होगा

  4. कैसे एक ही स्तंभ मूल्यों के साथ mysql तालिका से एक निश्चित पंक्ति को हटाने के लिए?

  5. VARCHAR फ़ील्ड में स्ट्रिंग की घटनाओं की संख्या की गणना करें?