問題タブ [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.
sql - 子テーブルが更新された後に親テーブルの行を更新するデータベース トリガー
初めてデータベース トリガーを作成します。コスト列が更新されたときに、変更を反映するために親テーブルもコスト列を更新する必要がある子テーブルがあります。
これまでの私の残念な試みは次のとおりです。それは明らかに機能していません。総コストを変数として抽出し、それを親テーブルに格納する方法を理解するのに問題があります。
私の現在のアプローチでは、現時点では静的 ID 値を想定しています。更新された行の id 値を動的に決定する方法が完全にはわかりません。
この現在のスクリプトはエラーを返しています
メッセージ 207、レベル 16、状態 1、プロシージャ ParentCost_Update、行 9 列名 'TotalCost' が無効です。
sql - チェック制約で行全体を参照することは可能ですか?
トリガーの代わりに制約を使用して、行全体に対して独自の検証関数を呼び出したいのCHECK
ですが、可能ですか?
oracle - トリガーが作成されていません
Oracle ベースを生成する SQL ファイルに 3 つのトリガーがあります。ファイルを開始すると、「トリガーが作成されました」というメッセージが表示されず、トリガーの作成時に実行がロックされているようです(以前にすべての作成確認があります)。
手伝って頂けますか ?トリガーは次のとおりです。
oracle - Oracle を使用したトリガーの作成に関する問題
私の質問は:
SalesTransaction の合意価格が車の提示価格の 20% を超えるたびに、「ExcellentSale」という別のテーブルに販売代理店名、車のモデル、メーカー名を自動的に格納するトリガー。(注: このトリガーを実装する前に、'ExcellentSale' テーブルを作成する必要があります。主キーを作成するには、1 から始まり 1 ずつ増加するシーケンスを使用します)。
これらのテーブルを使用しています
これが私の試みです
トリガーがコンパイルされ、これをテストしようとすると、SalesTransaction に挿入されるこれらの値を使用します。これにより、トリガーが起動されますが、エラーとして表示されます。
表示されたエラーはこれです
sql - Oracle SQL - PLS-00049 - 不適切なバインド変数
次のように定義されたテーブルがあります。
未来からの日付の挿入をブロックするトリガーを作成したいのですが、コードは次のようになります。
エラー Error(5,7): PLS-00049: chybná vázaná proměnná 'NEW.DATUM_CAS' (bad bind variable in English) が発生し続けます。私は何を間違っていますか?
mysql - 同じテーブルでトリガーを使用して新しい行を挿入する
私はテーブルを持っていますJOB
。次の列がありますcycle_id, job_id, status
。
サイクルごとに実行されるジョブは 7 つあります。したがってcycle_id
、job_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 を持つ行を作成したくありません。自動で処理してほしい。このトリガーは別の方法で記述できますか、それとも他のメカニズムを使用する必要がありますか?