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

अद्वितीय बाधा जो MySQL में दो स्तंभों की जाँच करती है

आप इसे BEFORE . के साथ कर सकते हैं इस तरह ट्रिगर करें

CREATE TRIGGER tg_bi_mytable
BEFORE INSERT ON mytable
FOR EACH ROW
  SET NEW.address1 = IF(EXISTS
     (
       SELECT * 
        FROM mytable 
       WHERE address1 IN(NEW.address1, NEW.address2) 
          OR address2 IN(NEW.address1, NEW.address2)
     ), NULL, NEW.address1);

नोट: चूंकि आप एक MySQL संस्करण का उपयोग कर रहे हैं जिसमें SIGNAL . का अभाव है चाल का उल्लंघन करना है NOT NULL जब समान पते वाली पंक्तियाँ पाई गई हों, तो किसी एक स्तंभ पर बाधा उत्पन्न हो जाती है।

यह रहा SQLFiddle डेमो। अंतिम सम्मिलित कथनों में से किसी एक पर टिप्पणी रद्द करें और Build Schema click पर क्लिक करें . ये प्रविष्टियां सफल नहीं होंगी.




  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. MySQL चुनें कि डेटाटाइम दिन से मेल खाता है (और जरूरी नहीं कि समय)

  3. MySQL में एक कॉलम का नाम बदलें

  4. कौन सी क्वेरी बेहतर और कुशल है - mysql

  5. जांचें कि क्या लार्वा मॉडल सहेजा गया है या क्वेरी निष्पादित हुई है