यह निश्चित रूप से टेबल 'अतिथि' पर ट्रिगर से पहले की गंध की गंध करता है:
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 (उबंटू ल्यूसिड)
पर मेरे लिए परीक्षण किया गया और काम करता है