Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Batasan seperti pernyataan MySQL

Ini pasti bau pemicu SEBELUM MASUKKAN di meja 'tamu':

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 ;

Ini pada dasarnya mencari jumlah tamu saat ini, dan jika sudah>=2 set card_number ke NULL. Karena card_number dinyatakan BUKAN NULL, ini akan menolak penyisipan.

Diuji dan berfungsi untuk saya di 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. Bagaimana saya bisa mengganti nama kolom di laravel menggunakan migrasi?

  2. Jumlah kolom tidak cocok dengan jumlah nilai pada baris 1

  3. pernyataan persiapan driver golang sql

  4. SQL:Pilih Kunci yang tidak ada dalam satu tabel

  5. Menyetel ulang AUTO_INCREMENT membutuhkan waktu lama di MySQL