sql >> Base de Datos >  >> RDS >> Mysql

Validación de datos MySQL en la inserción

Digamos que tienes un par de mesas:

Items
------------
ItemID
NumAvailable
-------------

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

Podría crear un disparador que suma el ItemID y se compara con el NumAvailable para ese artículo en particular. Se vería así (puede tener errores, solo se presenta una idea general :) . El método de error obtenido de aquí , puede haber una mejor manera disponible):

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