現在、既存のクライアントからの新しい仕事が借金を支払うまで承認されないという単純なタスクを実装する際に問題が発生しています。SQL-92アサーションがOracleで機能しないことがわかるまで、これは簡単だと思っていました...
私はウェブを見回して、トリガー/チェック制約を使用して同じことを実行できることを確認しました。しかし、私はこれを達成する方法について完全に迷っています。
私のデータベースは次のように構成されています。
Table invoice is in a one-to-many relationship with jobs
Table jobs is in a many-to-one relationship with client
現時点で私は持っています:
CREATE TRIGGER check_debt
BEFORE UPDATE ON jobs
FOR EACH ROW
WHEN ((SELECT * FROM client WHERE clientNo =
(SELECT * FROM jobs WHERE jobNo =
(SELECT * FROM invoice WHERE status = 'Debt Owing'))))
COMMIT;
ご覧のとおり、トリガーを使用してアサーションを模倣する方法がわかりません...
どんな助けでも大歓迎です!
ありがとう。
注: SQL-92 および SQL-99 標準を使用して練習しています。