Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Validação de dados MySQL na inserção


Digamos que você tenha algumas tabelas:
Items
------------
ItemID
NumAvailable
-------------

Checkout
-----------
UserID
ItemID
-----------

Você pode criar um gatilho que soma o ItemID e compara com o NumAvailable para aquele item específico. Ficaria mais ou menos assim (pode ter erros, ideia geral apresentada apenas :) . O método de erro obtido em aqui , pode haver uma maneira melhor disponível):
CREATE TRIGGER check_available 
BEFORE INSERT ON Checkout 
FOR EACH ROW 
BEGIN
  SELECT IF (COUNT(new.ItemID) > Items.NumAvailable) THEN
    DECLARE dummy INT;
        SELECT 'No more items to check out!' INTO dummy 
  FROM new NATURAL JOIN Items WHERE NEW.ItemID = Items.ItemID
  END IF;
END