Firebird UDF での現在のテーブルとレコードの値の識別

べと孫

トリガーを使用して Firebird テーブルの完全なレコードを複製する UDF の作成方法を調査しています。

いくつかのテーブルに関するリビジョン/履歴を作成し、UDF を使用して mongodb データベースにデータを複製し、mongodb に接続してそこにレコードを挿入したい。

私の質問は:私は、引数として値を渡すか、単に通過することなく自動に列の値を取得するために、現在のテーブルと行を認識し、それを呼び出したときにUDFを作成することが可能であるとOLDし、NEWコンテキスト変数を?

このようなもの:

CREATE TRIGGER 
    MY_REPLICATOR 
ACTIVE AFTER INSERT OR UPDATE OR DELETE 
POSITION 99 
ON MY_TABLE
AS
BEGIN
    /*INSIDE THE UDF IT IDENTIFIES THE CURRENT TABLE-ROW 
      AND REPLICATE ALL COLUMNS VALUES TO MY MONGODB*/
    MY_UDF_REPLICATION(OLD, NEW); 
END
アンドレイ・キレジェ

Firebird 3 では、適切な言語で外部トリガーを記述し、現在のレコード コンテキストを取得できます。まだ FB 2.5 以前を使用している場合は、テーブル内のすべての列に対して UDF を呼び出すアプローチを使用します。データベースの構造に応じたこのようなトリガーの作成は、簡単に自動化できます。

CREATE TRIGGER MY_REPLICATOR FOR My_TABLE
  ACTIVE 
  AFTER INSERT OR UPDATE OR DELETE 
  POSITION 99 
AS
BEGIN
  MY_UDF_START_REPLICATE_ROW(CURRENT_TRANSACTION, 'MY_TABLE');

  MY_UDF_REPLICATE_INT_COLUMN(CURRENT_TRANSACTION, 'COLUMN_NAME_1', 
    OLD.column_name_1, NEW.column_name_1);
  MY_UDF_REPLICATE_VARCHAR_COLUMN(CURRENT_TRANSACTION, 'COLUMN_NAME_2', 
    OLD.column_name_2, NEW.column_name_2);
  ...
  -- call appropriate function for every column of the table
  ...

  MY_UDF_END_REPLICATE_ROW(CURRENT_TRANSACTION, 'MY_TABLE');
END

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Firebird 3.0 UDF のチュートリアル / 外部関数

分類Dev

Firebirdのストリップ手順、trggersビュー、およびudf

分類Dev

暗号化/復号化用のFirebirdデータベースUDFがメモリを解放しない

分類Dev

RDB $ DB_KEYまたはキーなしでFirebirdのレコードを識別する方法

分類Dev

FireDAC:Firebirdとのテーブルの共有ロック

分類Dev

pySparkのループのudf

分類Dev

Firebird外部テーブル

分類Dev

Firebirdの方法で、テーブル内のすべてのレコードをカウントし、最大から最小に並べ替えます

分類Dev

結合されたテーブル値UDFの実行

分類Dev

RedshiftのUDF:別のUDF内のUDFを参照することが可能

分類Dev

MySQLテーブルパーティショニングと同等のFirebird

分類Dev

テーブル作成中のSQLエラー-Firebird

分類Dev

Firebirdの別のテーブルから行を挿入するにはどうすればよいですか?

分類Dev

テーブルのデータなしで1行のテーブルの列名を取得する-Firebird

分類Dev

firebird-1つのテーブルに自己結合

分類Dev

Firebirdの結果がGridviewに

分類Dev

PySparkでのUDFリロード

分類Dev

ScalaSparkでのUDFの連結

分類Dev

UDFの一時テーブルの置き換え

分類Dev

テーブル内の要素を検索するためのUDF

分類Dev

Firebirdグループ条項

分類Dev

Firebirdデータベースのアップグレード

分類Dev

Firebirdのselect句にブール式を含めることは可能ですか?

分類Dev

Stream Analytics - ウィンドウ内の複数の個別のレコードを UDF に渡す

分類Dev

別のUDF内でUDFを呼び出す

分類Dev

Firebird 1.5:最大値でグループ化

分類Dev

サーバー側のFirebird計算(計算)フィールド

分類Dev

Firebirdの「ForEachRow」トリガー構文

分類Dev

Apache Flink PythonテーブルAPI UDF依存関係の問題

Related 関連記事

  1. 1

    Firebird 3.0 UDF のチュートリアル / 外部関数

  2. 2

    Firebirdのストリップ手順、trggersビュー、およびudf

  3. 3

    暗号化/復号化用のFirebirdデータベースUDFがメモリを解放しない

  4. 4

    RDB $ DB_KEYまたはキーなしでFirebirdのレコードを識別する方法

  5. 5

    FireDAC:Firebirdとのテーブルの共有ロック

  6. 6

    pySparkのループのudf

  7. 7

    Firebird外部テーブル

  8. 8

    Firebirdの方法で、テーブル内のすべてのレコードをカウントし、最大から最小に並べ替えます

  9. 9

    結合されたテーブル値UDFの実行

  10. 10

    RedshiftのUDF:別のUDF内のUDFを参照することが可能

  11. 11

    MySQLテーブルパーティショニングと同等のFirebird

  12. 12

    テーブル作成中のSQLエラー-Firebird

  13. 13

    Firebirdの別のテーブルから行を挿入するにはどうすればよいですか?

  14. 14

    テーブルのデータなしで1行のテーブルの列名を取得する-Firebird

  15. 15

    firebird-1つのテーブルに自己結合

  16. 16

    Firebirdの結果がGridviewに

  17. 17

    PySparkでのUDFリロード

  18. 18

    ScalaSparkでのUDFの連結

  19. 19

    UDFの一時テーブルの置き換え

  20. 20

    テーブル内の要素を検索するためのUDF

  21. 21

    Firebirdグループ条項

  22. 22

    Firebirdデータベースのアップグレード

  23. 23

    Firebirdのselect句にブール式を含めることは可能ですか?

  24. 24

    Stream Analytics - ウィンドウ内の複数の個別のレコードを UDF に渡す

  25. 25

    別のUDF内でUDFを呼び出す

  26. 26

    Firebird 1.5:最大値でグループ化

  27. 27

    サーバー側のFirebird計算(計算)フィールド

  28. 28

    Firebirdの「ForEachRow」トリガー構文

  29. 29

    Apache Flink PythonテーブルAPI UDF依存関係の問題

ホットタグ

アーカイブ