sql >> データベース >  >> RDS >> Mysql

挿入時のMySQLデータ検証

    テーブルがいくつかあるとします:

    Items
    ------------
    ItemID
    NumAvailable
    -------------
    
    Checkout
    -----------
    UserID
    ItemID
    -----------
    

    トリガーを作成 できます ItemIDを合計します NumAvailableと比較します その特定のアイテムのために。これは次のようになります(エラーがある可能性があり、一般的なアイデアは提示されているだけです:)。 ここ 、利用できるより良い方法があるかもしれません):

    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. Pythonで(utf8mb4)をエンコードする方法

    2. データベース内のテーブルごとにSQLiteOpenHelperを継承するクラスを作成する必要がありますか?

    3. 注文なしですべての顧客を取得するSQLステートメント

    4. 同じテーブルの行間の日時行の差を計算する