人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPとMySQLでデータを追加すると、特定のテーブル内の全レコードを別テーブルにコピーすることは出来るのでしょうか?

希望内容として
・Aのテーブルには10件のデータが入っている
・Bのテーブルにレコードを追加すると、AのテーブルにあるすべてのデータがBAテーブルにコピーされる

いくつか方法があると思いますが、出来るだけシンプルで汎用性の高いコードはないものかと思い、質問しました。

ちなみにPHPは5.2.0をMySQLは4.0.26を使っています。

●質問者: kt26
●カテゴリ:ウェブ制作
✍キーワード:2.0 BA MySQL PHP いもの
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●10ポイント

出来るだけシンプルで汎用性の高いコードはないものか

ない。

希望のことを MySQL でやろうとすればトリガーを使うしかないが、5系からのサポートの上RDBMSごとにやり方が違う。


すなおにPHP側でそういうことをまとめてやる function を作るぐらいしか。

◎質問者からの返答

>>すなおにPHP側でそういうことをまとめてやる function を作るぐらいしか。


なるほど。functionやwhileを使って1件ずつレコードを新テーブルに追加する方法は思いつくのですが、それ以外無いかと思い、質問しました。

「ない」と言われればそれまでですが、、念のため終了まで他者の回答をお待ちしたいと思います。


2 ● b-wind
●100ポイント

1件ずつレコードを新テーブルに追加する方法

1件ずつやらないだけならある。


MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 6.4.3.1 INSERT ... SELECT 構文

INSERT INTO BA SELECT * FROM A ;

テーブル A と BA が構造が同じならこれで。違うならカラムを指定して。

ただ、これを実行するタイミング(B の更新時とか)はあくまで PHP 側でしかできない。

◎質問者からの返答

上手くできました。こういうやり方があるんですね。


カラム指定したら異なるテーブル同士でもコピー出来ますし、非常に便利だと思います。

回答ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ