Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL ограничение, подобно на твърдение

Това определено мирише на тригер BEFORE INSERT на таблицата „гост“:

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 задава card_number на NULL. Тъй като card_number е деклариран НЕ NULL, това ще отхвърли вмъкването.

Тестван и работи за мен на 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. Създайте поле за избор на подкатегория при Промяна

  2. SQL подреждане по брой

  3. Изпълнението на докер контейнер изисква поне 1 аргумент

  4. MYSQL Създаване на таблица със стойност (израз) по подразбиране към колона

  5. Sqlalchemy връща остарели редове?