アフィリエイト広告を利用しています

広告

posted by fanblog

2014年09月03日

Firebird で外部DBにレコードを同期的に追加する

最新の Firebird 2.5.3 では、リモートDBに対して操作できる機能も追加されていることを知り、データの同期に使えることがわかった
直接やりたかったことは、マスターテーブルに対してログレコードを出力した際に、別のバックアップDBに対しても同じレコードを出力したいということだった

つまり、HOST_ALOGTABLE に対して INSERTされたら、HOST_BLOGTABLE にも INSERT したいということ

これを実現するために、HOST_ALOGTABLE に対して以下のようなトリガーを設定すればよい



CREATE TRIGGER ON_INSERT_LOGTABLE FOR LOGTABLE
AS
DECLARE sqlstr VARCHAR(128);
DECLARE rmtdb VARCHAR(128) = 'HOST_B:MY_DB.fdb';
DECLARE usernm VARCHAR(32) = 'sysdba';
DECLARE passwd VARCHAR(32) = 'masterkey';
BEGIN
sqlstr = 'INSERT INTO LOGTABLE VALUES(?)';
EXECUTE STATEMENT (:sqlstr) (new.DATA)
ON EXTERNAL DATA SOURCE :rmtdb
AS USER :usernm PASSWORD :passwd;
END



これでめでたく、レコードの同期ができることになった
※ただし、INSERTのみ、いわゆる完全なレプリケーション機能とは異なる
※もっとも、各種トリガーを定義すれば、かなりそれに近いことはできそうだが、設定がかなり面倒だ


【広告】

国内最大級の個人向けレンタルサーバー『ロリポップ!レンタルサーバー』は、

月額100円(税抜)〜で容量最大120GB!しかも安いだけじゃなく
大人気WordPressの簡単インストール/ウェブメーラーなど
機能も満載!共有/独自SSLもバッチリ対応でセキュリティ対策も万全!

もちろん、オンラインマニュアルやライブチャットなど、

充実したサポートで初心者の方でも安心です。

無料のお試し期間が10日間ありますので、

まずはお気軽にご利用してみてくださいね!


▼ロリポップ!レンタルサーバーはこちら

お名前.com レンタルサーバー


この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/2739664
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
ファン
検索
<< 2016年05月 >>
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
最新記事
最新コメント
タグクラウド
カテゴリアーカイブ
プロフィール
いしちゃんさんの画像
いしちゃん
ブログ
プロフィール
日別アーカイブ
×

この広告は30日以上新しい記事の更新がないブログに表示されております。