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

Oracleトリガー-テーブルの変更に関する問題

    お気づきのように、トリガーでビジネス要件に答えるのは難しいでしょう。その理由は、Oracleが可能性がある 単一のクエリ(並列DML)に対して、同時に複数のスレッドでテーブルを更新/挿入します。これは、更新が行われている間セッションが更新するテーブルをクエリできないことを意味します。 。

    トリガーを使用してこれを本当に実行したい場合は、TomKyteによるこの記事に示されている種類のロジック 。ご覧のとおり、それは単純なことではありません。

    別の、より単純で、よりエレガントで、保守が容易な方法があります。それは、手順を使用することです。アプリケーションのユーザーに対する更新/挿入の権利を取り消し、アプリケーションが状態列を更新できるようにする一連の手順を記述します。

    これらのプロシージャは、親行をロックし(複数のセッションが同じ行のセットを変更するのを防ぐため)、効率的で読みやすく、保守が容易な方法でビジネスロジックを適用します。



    1. 安全でない HTML 文字を HTML 文字エンティティ参照としてエンコードする T-SQL アルゴリズム

    2. 単一のクエリでページ付けされた行と合計数を取得します

    3. Laravelは未定義のエラーをスローすることに属します

    4. mysql select query where date=...データを返さない