dポイントプレゼントキャンペーン実施中!

同じ構造の、
 A_table と B_table があります。

それぞれに
 id date name address mail comment
という、6つのカラムがあります。


変更があった際に、 A_table にcsvで全データをインポートし、
 B_table に変更のあったカラム( date name address mail )の列だけをコピーしたいと思っています。

( id )は A_table と B_table 共通にし、変更しないことを前提としています。
( comment )は外部から編集できるため、csvデータが最新の情報とは限りませんので、
csvデータでの変更は考えておりません。
レコード数としては、多い方だと思います。


上記の作業をしようと思っているのですが、
>> B_table に変更のあったカラム( date name address mail )の列だけをコピー
する方法をご存じの方がいらっしゃいましたら、何卒、ご教授お願い致します。




また、
変更したいカラムだけ、csvデータとidを共通にすればインポート可能かな…と探してはみたのですが無いようで、こちらはできないと考えても大丈夫なのでしょうか。

(phpmyadminを利用しておりますが、カラム名を指定してインポートはできるのですが、
 指定しないカラムは空白になって上書きされてしまいます。)

ついでで申し訳ないですが、宜しければアドバイスをいただければと思います。

A 回答 (2件)

追加で確認。



A_tableには追加データをcsvファイルをインポートするとして、その同じcsvファイルをB_tableにインポートする以外に、B_tableに追加すべきデータを特定する手段はあるのでしょうか?

例えば、A_tableとB_tableは常に同じデータが入るようにしていて、二つのテーブルの差分検索で特定できるとか。
    • good
    • 0

MySQLのバージョンを、MySQL 4.1、5.0、5.1といったレベルまで、最低限で提示するようにしてください。


大きな機能追加だけでなく、仕様変更もあります。

「変更」の意味が曖昧で、質問内容が分かりにくいです。

A_table、B_tableという二つのテーブルは、構造だけでなく、データもまったく同じにするということですか?
それとも、まったく同じではないけど、同じデータを追加でインポートすることがあり、その時、現状ではauto_incrementでid列の値を生成しているけど、そのid列値も同じにしたいということですかね?

A_table、B_tableは、同じデータをインポートする以外に、それぞれ追加があるのでしょうかね?そうであれば、auto_incrementを使用すること自体、無理があるのでは?

A_table、B_tableの関係、やりたいこと、現状の問題点を、もう少し具体的に説明できませんか?

この回答への補足

ご指摘ありがとうございます。

・MySQL クライアントのバージョン: 5.0.45
・phpMyAdminバージョン情報: 3.2.4-rc1

です。


以前、他の質問をさせていただいたとき
http://okwave.jp/qa/q6777409.html
>>CSVをワークテーブルに一気に読み込んで、それを元に本番用テーブルを更新するSQLを実行する
というご回答をいただいて、
B_tableに外部から追加・編集された( comment )があるとして、一度A_tableにCSVをすべてインポートして、変更(( name address mail )名前変更・住所変更・メール変更が何件か)がよくあるカラムのみ列ごとB_tableに上書きしたいと思っています。

idは、CSVデータであらかじめこちらで作成しているので、CSVデータで作成する以外は追加はありません。
AとB、idさえ合わせておけば、コピーもできるのかと思ってました・・・



すいません、解決の手段がなく、未熟ですが質問させていただきました。

追加でも確認いただいたのに、
>>B_tableに追加すべきデータを特定する手段
>>二つのテーブルの差分検索で特定
ということが、どれをどう指しているのか、理解が追いついておりません。

ご丁寧にご指摘いただいたのに、本当に申し訳ございません。

補足日時:2011/06/04 02:08
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!