sql >> Database >  >> RDS >> Mysql

MySQL-gegevensvalidatie bij invoeging

Stel dat je een paar tafels hebt:

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

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

Je zou een trigger kunnen maken dat is de ItemID en vergelijkt met de NumAvailable voor dat specifieke artikel. Het zou er ongeveer zo uitzien (kan fouten bevatten, alleen een algemeen idee :) . De methode voor fouten afgeleid van hier , er is misschien een betere manier beschikbaar):

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


  1. MySQL Select-query om recordbasis op te halen op lijstwaarden

  2. ORA-06502:PL/SQL:numerieke of waardefout:tekenreeksbuffer te klein

  3. Hoe kan ik een mysql-database maken met Docker compose?

  4. SMALLDATETIMEFROMPARTS() Voorbeelden in SQL Server (T-SQL)