Mysql
 sql >> Base de données >  >> RDS >> Mysql

Validation des données MySQL à l'insertion

Supposons que vous ayez quelques tables :

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

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

Vous pouvez créer un déclencheur qui additionne le ItemID et se compare au NumAvailable pour cet article particulier. Cela ressemblerait à quelque chose comme ça (peut avoir des erreurs, idée générale présentée uniquement :) . La méthode d'erreur glanée à partir de ici , il existe peut-être un meilleur moyen :

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