Mysql
 sql >> Database >  >> RDS >> Mysql

Convalida dei dati MySQL all'inserimento

Supponi di avere un paio di tavoli:

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

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

Potresti creare un trigger che somma il ItemID e confronta con NumAvailable per quel particolare articolo. Sembrerebbe qualcosa del genere (potrebbero esserci errori, solo l'idea generale presentata :) . Il metodo per l'errore raccolto da qui , potrebbe esserci un modo migliore disponibile):

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