問題タブ [triggers]
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 - テーブルの複数のトリガーにどのように優先順位を付けますか?
テーブルにいくつかのトリガーがあり、それらを別々に保持して優先順位を付けたいと考えています。
トリガーを 1 つだけ使用してそこでロジックを実行することもできますが、これを事前に定義された順序で実行する、より簡単で論理的な方法があるかどうか疑問に思っていました。
sql - T-SQL トリガーで「列名または指定された値の数がテーブル定義と一致しません」というエラーが発生する
これは私が修正できなかったものであり、あらゆる場所を見てきました。ここならわかる人もいるかも!
dandb_raw という名前のテーブルがあり、特に 3 つの列があります: dunsId (PK)、name、および searchName。このテーブルで動作するトリガーもあります。
トリガーにより、挿入が失敗します。
このエラーで:
これに関する最も興味深い点は、トリガー内の個々のステートメントがそれぞれ独自に機能することです。挿入されたテーブルの 1 つに挿入されたものを移動しようとすると、一時テーブルに感染する 1 回限りのテーブルであるかのようです。
では、トリガーが失敗する原因は何でしょうか? どうすれば止められますか?
mysql - MySQL トリガー + 複数のデータベースでのレプリケーション
MySQL 5.0.45 でいくつかのデータベースを実行しており、レガシー データベースを改訂されたスキーマと同期させようとしているので、両方を並べて実行できます。新しいデータベースにトリガーを追加してこれを行っていますが、レプリケーションで問題が発生しています。私のセットアップは次のとおりです。
サーバー「マスター」
- データベース「legacydb」は、サーバー「スレーブ」に複製されます。
- データベース「newdb」には、「legacydb」を更新するトリガーがあり、レプリケーションはありません。
サーバー「スレーブ」
- データベース「legacydb」
「newdb」への更新は正常に実行され、トリガーが開始されました。「マスター」サーバーで「legacydb」を更新します。ただし、変更はスレーブに複製されません。"SELECT DATABASE();"
MySQL のドキュメントによると、簡単にするために、レプリケーションでは、どのクエリをレプリケートするかを決定する際に、クエリの結果を見るのではなく、現在のデータベース コンテキスト (例: ) を確認します。私のトリガーはデータベース「newdb」のコンテキストから実行されるため、レプリケーションは更新を無視します。
updateステートメントを「legacydb」のストアドプロシージャに移動しようとしました。「マスター」に接続して手動で実行すると、これは正常に機能します(つまり、データがスレーブに複製されます)"USE newdb; CALL legacydb.do_update('Foobar', 1, 2, 3, 4);"
。ただし、このプロシージャがトリガーから呼び出された場合、複製は行われません。
これまでのところ、これを修正する方法についての私の考えは、次のいずれかです。
トリガーに強制的に新しい現在のデータベースを設定させます。これは最も簡単ですが、これは不可能だと思います。これは、ストアド プロシージャで実現したかったことです。
両方のデータベースをレプリケートし、マスターとスレーブの両方にトリガーを設定します。これは可能ですが、設定するのは面倒です。
現在のデータベース コンテキストに関係なく、レプリケーションが "legacydb" へのすべての変更を取得するように強制します。
レプリケーションが高すぎるレベルで実行されると、トリガーによって実行される更新が表示されることさえありません。
これを達成する方法についての助けをいただければ幸いです。
sql - SQL Server 2005 の複数データベースの展開/アップグレード ソフトウェアの提案
複数の SQL Server 2005 データベースとトリガーを使用する製品があります。お客様のサーバーにデータベース スキーマを展開およびアップグレードするための持続可能なソリューションを探しています。
現在、Red Gate の SQL Packager を使用していますが、これはこの特定のジョブには不適切なツールのようです。SQL Packager は個々のデータベースに合わせて調整されているように見えるだけでなく、私たちが所有している特定の (古い) バージョンには、SQL Server 2005 でいくつかの問題があります。トリガーを使用して複数のデータベースを処理できるようにするための多くの回避策があります。)
次のことを行うためにEXEまたは.NETプロジェクトを作成できる製品を提案できますか?
次に、顧客がデータベース スキーマを更新する必要がある場合、製品は、サーバー上の元のデータベース セットと更新されたデータベース セットの間の変更を確認できます。その後、製品は EXE または .NET プロジェクトを作成し、顧客のサーバー上で...
基本的に、SQL Packager に似た製品を探していますが、複数のデータベースを簡単に処理できる製品を探しています。そのような製品が存在しない場合は、独自に作成する必要があります。
ご提案いただきありがとうございます。
sql - SQL - CLOB をどのように比較しますか
DB2 トリガーでは、CLOB フィールドの値を比較する必要があります。何かのようなもの:
ただし、「!=」は CLOB の比較には機能しません。
それを比較する方法は何ですか?
追加するために編集:
更新中に Clob フィールドが変更された場合、トリガーは何らかのアクションを実行する必要があります。これが、トリガー コードで 2 つの CLOB を比較する必要がある理由です。 これをどのように行うことができるかについての詳細な情報を探しています
oracle - トリガーが無効かどうかを確認する方法は?
私は、あいまいなツールによって自動生成された移動テーブルを持つデータベースに取り組んでいます。ところで、いくつかのトリガーを介して、テーブル内の情報の変更を追跡する必要があります。そしてもちろん、列を削除したり、そのタイプを変更したりして、テーブル構造の一部の変更によって一部のトリガーが壊れることがあります。
問題は、サポート チームにレポートを送信するために、いくつかのトリガーが壊れているかどうかを確認するために Oracle メタデータをクエリする方法はありますか?
user_triggers はすべてのトリガーを提供し、それらが有効かどうかを示しますが、それらがまだ有効かどうかは示しません。
sql-server - SQL Server トリガーからプロセスを生成する最良の方法
SQL Server 05/08 トリガーを使用して別のプロセスを生成するにはどうすればよいですか? 理想的には、プロセスを生成し、SQL Server がプロセスの実行を待機しないようにしたいと考えています。プロセスをトリガーしている挿入からいくつかのパラメーターを渡す必要がありますが、残りは実行可能ファイルが処理します。
sql - データベースの重複値の問題 (以前の値に基づくフィルタリング)
今週初め、実行時に重複する値を順番に除外する方法について質問しました。いくつかの良い答えがありましたが、調べていたデータの量が遅くなり、実行可能ではありませんでした.
現在、データベースでは、イベント値はフィルタリングされていません。データ値が重複する (さまざまなタイムスタンプを持つ)。実行時にそのデータを処理する必要があり、データベース レベルでは時間がかかります (また、ストアド プロシージャで頻繁に使用されるため、コードに取り込むことができません)。その結果、クエリ時間が長くなります。実行時に追加のフィルタリングが必要ないように、このデータ ストアをフィルタリングしてクエリできるデータ構造が必要です。
現在、DBにある
- 「F07331E4-26EC-41B6-BEC5-002AACA58337」、「1」、「2008-05-08 04:03:47.000」
- 「F07331E4-26EC-41B6-BEC5-002AACA58337」、「0」、「2008-05-08 10:02:08.000」
- 'F07331E4-26EC-41B6-BEC5-002AACA58337', '0', '2008-05-09 10:03:24.000' (これを削除する必要があります) **
- 「F07331E4-26EC-41B6-BEC5-002AACA58337」、「1」、「2008-05-10 04:05:05.000」
私たちの必要なもの
- 「F07331E4-26EC-41B6-BEC5-002AACA58337」、「1」、「2008-05-08 04:03:47.000」
- 「F07331E4-26EC-41B6-BEC5-002AACA58337」、「0」、「2008-05-08 10:02:08.000」
- 「F07331E4-26EC-41B6-BEC5-002AACA58337」、「1」、「2008-05-10 04:51:05.000」
これは些細なことのように思えますが、私たちの問題は、ワイヤレス デバイスからこのデータを取得することです。その結果、パケットのシーケンスが乱れ、ゲートウェイがマルチスレッド化されているため、取得した値が正しいことを保証できません。4 秒前は「1」、2 秒前は「0」のように何かが入ってくるかもしれませんが、「1」は最初に入っていたので既に処理しています。データをデータベースの最新の値と比較することはできません。実際には最新の値がまだ入っていない可能性があるためです。したがって、現在、入ってくるすべての値を保存し、データベースは時間に基づいて自分自身をシャッフルします..しかし、イベントはまだアクティブであるため、ユニットは 1,1,1,0 とその有効な値を送信できます。
何か案は?
さらに情報が必要かどうか尋ねます。
[編集] PK 機能しません - 問題は、ユニットが実際に異なるタイムスタンプを送信することです。1,1,1 は同じなので PK は機能しませんが、タイムスタンプが異なります。そのようなイベントは time1 で発生し、イベントは time2 で引き続き発生し、両方が返されます..同じ値の異なる時間。
javascript - Javascript: 関数の終了時にアクションをトリガーする
JavaScript関数が終了するのをリッスンする方法はありますか? 関数が完了したときに設定できるトリガーはありますか?
AJAX オブジェクトが DB からデータを取得しているときに、ユーザー インターフェイスの難読化手法 (BlockUI) を使用しようとしていますが、関数呼び出しの最後に配置しても、関数は必ずしも最後に実行されるとは限りません。
例:
unBlockUI を起動する前に、doStuff が ajaxCall の完了をリッスンする方法はありますか? そのまま、関数を線形に処理し、各オブジェクトを順番に呼び出してから、個別のスレッドを生成して各オブジェクトを完了します。したがって、AJAX 呼び出しが完了するまでに 10 ~ 15 秒かかる場合がありますが、関数の線形実行により、ほんの一瞬だけユーザーをブロックしています。
これにはあまり洗練されていない方法があります... AJAX 関数によって設定された戻り値が true またはその性質の何かに設定されている場合にのみ、ループを終了させます。しかし、それは不必要に複雑で非効率的です。
wpf - WPF を使用して、カスタム ボタン コントロールの背景を更新する最良の方法は何ですか?
WPF では、完全にゼロから描画された xaml グラフィックを使用して、ボタンから継承するカスタム コントロールを作成しています。ボタン xaml 全体を囲む境界線があり、トリガーで MouseOver=True のときに背景を更新する場所としてそれを使用したいと考えています。知っておく必要があるのは、このボタンの上にマウスを置いたときに、このボタンの境界線の背景をグラデーションで更新する方法です。