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

TRIGGER जो INSERTs के विफल होने का कारण बनते हैं? संभव?

इस से ब्लॉग पोस्ट

<ब्लॉकक्वॉट>

MySQL ट्रिगर्स:आप ट्रिगर के साथ INSERT, UPDATE या DELETE को कैसे निरस्त करते हैं? एफनेट के #mysql पर किसी ने पूछा:

यदि मेरा व्यवसाय नियम विफल हो जाता है, तो मैं एक ट्रिगर को ऑपरेशन को कैसे रोकूं?

MySQL 5.0 और 5.1 में आपको ट्रिगर को विफल करने और एक सार्थक त्रुटि संदेश देने के लिए कुछ चालबाजी का सहारा लेना होगा। MySQL StoredProcedure FAQ यह त्रुटि प्रबंधन के बारे में कहता है:

एसपी 11. क्या एसपी के पास "आवेदन त्रुटियों को बढ़ाने" के लिए "उठाएं" कथन है? क्षमा करें, वर्तमान में नहीं। SQL मानक SIGNAL और RESIGNAL स्टेटमेंट TODO पर हैं।

शायद MySQL 5.2 में SIGNALstatement शामिल होगा जो इस हैकस्टोलन को सीधे MySQL StoredProcedure Programming से अप्रचलित बना देगा। हैक क्या है? आप MySQL को उस कॉलम का उपयोग करने का प्रयास करने के लिए मजबूर करने जा रहे हैं जो मौजूद नहीं है। कुरूप? हां। क्या यह काम करता है? ज़रूर।

CREATE TRIGGER mytabletriggerexample
BEFORE INSERT
FOR EACH ROW BEGIN
IF(NEW.important_value) < (fancy * dancy * calculation) THEN
    DECLARE dummy INT;

    SELECT Your meaningful error message goes here INTO dummy 
        FROM mytable
      WHERE mytable.id=new.id
END IF; END;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. प्रत्येक समूह से क्वेरी रिटर्न 1 पंक्ति चुनें

  2. उच्च उपलब्धता के लिए MySQL के लिए Percona सर्वर कैसे परिनियोजित करें

  3. तीसरी तालिका में अपने FK के साथ 2 तालिकाओं में शामिल होने की आवश्यकता है

  4. मूडल MySQL डेटाबेस के लिए स्वचालित विफलता को कैसे सेटअप करें

  5. ETL प्रक्रिया में Python और MySQL का उपयोग करना:SQLAlchemy