Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Ràng buộc giống như xác nhận MySQL

Điều này chắc chắn có mùi của một kích hoạt TRƯỚC KHI CHÈN trên bàn 'khách':

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 ;

Về cơ bản, điều này sẽ tìm kiếm số lượng khách hiện tại và nếu nó đã> =2, hãy đặt card_number thành NULL. Vì card_number được khai báo KHÔNG ĐẦY ĐỦ, điều này sẽ từ chối việc chèn.

Đã thử nghiệm và hoạt động cho tôi trên MySQL 5.1.41-3ubuntu12.10 (Ubuntu Lucid)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. delphi dxExpress MySQL:giá trị LAST_INSERT_ID không hợp lệ

  2. Nhập các tệp SQL lớn hơn vào MySQL

  3. hiển thị dòng mới mysql trong HTML

  4. Cách hiển thị phạm vi giờ

  5. LỖI 1452 (23000):Không thể thêm hoặc cập nhật hàng con:ràng buộc khóa ngoại không thành công