Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Datenvalidierung beim Einfügen

Angenommen, Sie haben ein paar Tabellen:

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

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

Sie könnten einen Trigger erstellen das summiert die ItemID und vergleicht mit NumAvailable für diesen bestimmten Artikel. Es würde in etwa so aussehen (möglicherweise mit Fehlern, nur allgemeine Idee dargestellt :) . Die Methode für Fehler aus hier , möglicherweise gibt es einen besseren Weg):

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