0

複数のソースから更新される MySQLQuantityのテーブルに列があります。の最終更新時刻とそれを実行したソースでInventory呼び出された別の列のテーブルで追跡を維持する必要がありました。このようなものは、列の内容 (テキスト型) である必要があります (最新の更新の詳細のみが必要です)。QuantityLogQuantityQuantityLog

 <Log>
     <UpdateTime>2015-02-23 12:00:01 PM</UpdateTime>
     <Source> Feeder application</Source>
 </Log>

更新時間のみが必要な場合、トリガーを使用してそれを行う方法を認識しています。ただし、トリガーアプローチでは、ソースを取得してこれを使用する他のメカニズムはありますか?

アプリケーションを使用してこれを行う他のメカニズムでは、この変更を行うすべてのアプリケーションを変更する必要があり、私はそれを行う傾向がありません。

4

1 に答える 1

1

その値で満たされた変数またはテーブルがない限り、MySql が「フィーダー アプリケーション」を知る方法はありません。これがあれば、フィールドが変更されるたびにこの情報をInventory テーブルに更新するトリガーを簡単に作成できQuantityます。

ただし、アプリケーションが一意の mysql ユーザーを使用してデータベースに接続する場合は、もちろんTRIGGER 内で組み込み関数CURRENT_USER()を使用できます。または、CONNECTION_ID()は、誰が何をしたかを追跡するときに役立つ場合があります。たとえば、アプリケーションの接続 ID を記録する新しいテーブルを作成できます。そのテーブルには、アプリケーション名、PID、およびその他のものを書き込むことができます。もちろん、これは、接続が確立された後に適切な挿入ステートメントを追加して、アプリケーションを少し変更することを意味します。通常、接続はプールに保持され、常に再作成されるわけではないため、オーバーヘッドは小さいはずです。

于 2015-07-05T09:33:40.487 に答える