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

Oracleトリガーの挿入/更新

    各行にトリガーファイアを指定することをお勧めします。これらはずっと簡単だと思います。

    MovieStar.Nameかどうかを確認するためにカウントを行うことができます 値はすでに存在し、存在しない場合は挿入します。これは、上記のアプローチと似ています。チェックしてから挿入するまでの間に別のユーザーが映画スターを挿入すると失敗しますが、クラスの割り当てにはおそらく十分です。これには失敗しないアプローチが受け入れられていますが、クラスでまだカバーしていない可能性があります。

    このようなことを試してください。おそらく、これまでのクラスでカバーしたすべてのものが組み込まれています:

    CREATE OR REPLACE TRIGGER TestTrig
    AFTER UPDATE OR INSERT ON STARSIN
    FOR EACH ROW
    DECLARE
      movieStarCount NUMBER;
    BEGIN
      SELECT COUNT(*) INTO movieStarCount
        FROM MovieStar
        WHERE Name = :NEW.StarName;
      IF movieStarCount = 0 THEN
        INSERT INTO MovieStar (Name) VALUES (:NEW.StarName);
      END IF;
    END;
    



    1. 主キーもインデックスですか?

    2. Prismaの使い方

    3. MySQLマルチカラム主キー

    4. SQL Serverで先頭と末尾の空白を削除する方法– TRIM()