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

Oracle-ユーザーに複数の行を挿入させる方法

    標準的な序文では、これは現実の世界で実際にこの種のことを行う方法ではありません...

    ここでは、実際にはステートメントレベルのトリガーを使用する必要があります。毎回すべての部屋をチェックすることによるパフォーマンスの低下を気にしない場合

    CREATE OR REPLACE TRIGGER Living_AIUD
      AFTER INSERT OR UPDATE OR DELETE
      ON Living
    DECLARE
      Count NUMBER;
    BEGIN
      FOR x IN (SELECT rid, count(*) cnt
                  FROM living
                 GROUP BY rid
                HAVING COUNT(*) < 3)
      LOOP
        RAISE_APPLICATION_ERROR(-20002, 'Too few people in room ' || x.rid);
      END LOOP;
    END Living_AIUD;
    

    毎回すべての部屋でこれを確認したくない場合は、ridのコレクションを含むパッケージが必要になります。 値、コレクションを初期化したbeforeステートメントトリガー、および:new.ridを追加した行レベルのトリガー コレクションへの価値。その後、afterステートメントのトリガーは、コレクション内の要素を繰り返し処理し、それらの部屋だけの人数を確認します。




    1. Ubuntu 20.04 / 18.04/16.04にPostgreSQL12をインストールする方法

    2. SQL Server(T-SQL)でデータベースの照合を表示する方法

    3. プレビュー:AzureDataStudio用のSentryOneプランエクスプローラー拡張機能

    4. postgresは関数内の一時テーブルを認識しません