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

MySQL अभिकथन जैसी बाधा

यह निश्चित रूप से टेबल 'अतिथि' पर ट्रिगर से पहले की गंध की गंध करता है:

DELIMITER $$
DROP TRIGGER IF EXISTS check_guest_count $$
CREATE TRIGGER check_guest_count BEFORE INSERT ON `guest`
  FOR EACH ROW BEGIN
    DECLARE numguests int DEFAULT 0;
    SELECT COUNT(*) INTO numguests FROM `guest` WHERE card_number=NEW.card_number;
    if numguests>=2 THEN
      SET NEW.card_number = NULL;
    END IF;
  END;
$$
DELIMITER ;

यह मूल रूप से वर्तमान अतिथि संख्या को देखता है, और यदि यह पहले से ही>=2 कार्ड_नंबर को NULL पर सेट करता है। चूँकि card_number को NOT NULL घोषित किया गया है, यह प्रविष्टि को अस्वीकार कर देगा।

MySQL 5.1.41-3ubuntu12.10 (उबंटू ल्यूसिड)

पर मेरे लिए परीक्षण किया गया और काम करता है


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पैरामीटरयुक्त क्वेरी जो टेक्स्ट कॉलम लौटाती है, हमेशा INT कॉलम के लिए शून्य लौटाती है

  2. PDO/MySQL तैयार कथन का उपयोग करते हुए पैरामीटर के रूप में तालिका का नाम

  3. दूरस्थ MySQL सर्वर से कनेक्ट करने का प्रयास करते समय MySQL सर्वर से कनेक्शन टूट गया

  4. MySQL डेटाबेस में दो कॉलम कैसे अपडेट करें?

  5. mysql2pgsql का उपयोग करके डेटाबेस को MySql से Postgres में स्थानांतरित करने में त्रुटि