問題タブ [database-trigger]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2615 参照

sql - 子テーブルが更新された後に親テーブルの行を更新するデータベース トリガー

初めてデータベース トリガーを作成します。コスト列が更新されたときに、変更を反映するために親テーブルもコスト列を更新する必要がある子テーブルがあります。

これまでの私の残念な試みは次のとおりです。それは明らかに機能していません。総コストを変数として抽出し、それを親テーブルに格納する方法を理解するのに問題があります。

私の現在のアプローチでは、現時点では静的 ID 値を想定しています。更新された行の id 値を動的に決定する方法が完全にはわかりません。

この現在のスクリプトはエラーを返しています

メッセージ 207、レベル 16、状態 1、プロシージャ ParentCost_Update、行 9 列名 'TotalCost' が無効です。

0 投票する
2 に答える
61 参照

sql - チェック制約で行全体を参照することは可能ですか?

トリガーの代わりに制約を使用して、行全体に対して独自の検証関数を呼び出したいのCHECKですが、可能ですか?

0 投票する
1 に答える
56 参照

oracle - トリガーが作成されていません

Oracle ベースを生成する SQL ファイルに 3 つのトリガーがあります。ファイルを開始すると、「トリガーが作成されました」というメッセージが表示されず、トリガーの作成時に実行がロックされているようです(以前にすべての作成確認があります)。

手伝って頂けますか ?トリガーは次のとおりです。

0 投票する
1 に答える
69 参照

oracle - Oracle を使用したトリガーの作成に関する問題

私の質問は:

SalesTransaction の合意価格が車の提示価格の 20% を超えるたびに、「ExcellentSale」という別のテーブルに販売代理店名、車のモデル、メーカー名を自動的に格納するトリガー。(注: このトリガーを実装する前に、'ExcellentSale' テーブルを作成する必要があります。主キーを作成するには、1 から始まり 1 ずつ増加するシーケンスを使用します)。

これらのテーブルを使用しています

これが私の試みです

トリガーがコンパイルされ、これをテストしようとすると、SalesTransaction に挿入されるこれらの値を使用します。これにより、トリガーが起動されますが、エラーとして表示されます。

表示されたエラーはこれです

0 投票する
2 に答える
5482 参照

sql - Oracle SQL - PLS-00049 - 不適切なバインド変数

次のように定義されたテーブルがあります。

未来からの日付の挿入をブロックするトリガーを作成したいのですが、コードは次のようになります。

エラー Error(5,7): PLS-00049: chybná vázaná proměnná 'NEW.DATUM_CAS' (bad bind variable in English) が発生し続けます。私は何を間違っていますか?

0 投票する
1 に答える
2101 参照

mysql - 同じテーブルでトリガーを使用して新しい行を挿入する

私はテーブルを持っていますJOB。次の列がありますcycle_id, job_id, status

サイクルごとに実行されるジョブは 7 つあります。したがってcycle_idjob_id複合主キーを形成します。

status 列には次の値を指定できますWAITING_TO_START, RUNNING. COMPLETED

各ジョブは cron ジョブです。そして、各ジョブは別の人の責任であるため、各人を同期するために、データベーステーブル JOB を使用しています。各ジョブは JOB テーブルをリッスンし、job_id とステータスが「WAITING_TO_START」の行があるかどうかを監視します。したがって、ジョブのステータスが COMPLETED に変更されるたびに、次のジョブ行がcycle_id更新されたジョブと同じように作成され、job_id は更新されたジョブの ID + 1、ステータスは「WAITING_TO_START」になります。だから私はこれのためのトリガーを次のように作成しました:

しかし、JOB テーブルで更新を実行すると、次のエラーが発生します。

エラー 1442 (HY000): このストアド関数/トリガーを呼び出したステートメントで既に使用されているため、ストアド関数/トリガーのテーブル 'ジョブ' を更新できません。

同期を達成する方法はありますか。各ジョブが次のジョブの ID を持つ行を作成したくありません。自動で処理してほしい。このトリガーは別の方法で記述できますか、それとも他のメカニズムを使用する必要がありますか?