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

2021年10月30日

トリガーでデータをコピーする

テーブルに登録されたデータを別テーブルにも登録するトリガー

 tablename1 ‥ トリガーを作成するテーブル
 tablename2 ‥ tablename1 に登録されたデータと同じデータを登録するテーブル
 両テーブルともに id, created, category, description の4項目を持ちます。


 create trigger トリガー名 after insert on tablename1 for each row
 insert into tablename2 (id,created,category,description) values
 (NEW.id,NEW.created,NEW.category,NEW.description)


NEWが新しく登録されたデータを指しているようです。

UPDATEコマンドの場合


 create trigger トリガー名 after update on tablename1 for each row
 UPDATE tablename2 SET
 `created`=NEW.`created`,
 `category`=NEW.`category`,
 `description`=NEW.`description`
 WHERE `id`=OLD.`id`


OLDは変更前のデータを指している。idを変更することがなければOLDでもNEWでも結果は同じ。
idを変更するような場合はNEWにした方が良いかもしれない。

トリガーを使用せずにデータをコピーする


トリガーを使わなくても、INSERTコマンドやUPDATEコマンドを実行した後、

実行対象テーブルを別テーブルに変更して、もう一度実行するという方法も考えられる。







posted by db-engineer at 00:00 | Comment(0) | Mysql

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

お名前:

メールアドレス:


ホームページアドレス:

コメント:

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

検索
最新記事
カテゴリーアーカイブ
プロフィール
db-engineerさんの画像
db-engineer
プロフィール
タグクラウド