sql >> Databáze >  >> RDS >> Mysql

Ověření dat MySQL při vkládání

Řekněme, že máte pár stolů:

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

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

Můžete vytvořit spouštěč který sčítá ItemID a porovnává se s NumAvailable pro tu konkrétní položku. Vypadalo by to nějak takto (může obsahovat chyby, pouze obecný nápad :) . Metoda pro chybu shromážděná z zde , může být k dispozici lepší způsob):

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. Návrh DB:tabulka členů oddělená nebo vše v jedné tabulce?

  2. Jak odstranit část řetězce v mysql?

  3. Využití mezipaměti contrib's pg_prewarm a pg_hibernator v PostgreSQL 9.4.

  4. Oracle Indexy a typy indexů v oracle s příkladem