たとえば、次のように言いましょう。
old_dataとnew_dataの 2 つのテーブルがあります。
old_dataとnew_dataの両方に、 this_is_colという 1 つの列があります。
old_dataとnew_dataの両方に、さまざまな (数百の) 日付の行 (2010-02-06、2010-01-09、2007-06-02 など) があります。両方のテーブルの日付は必ずしも同じではありませんが、形式は同じです。
両方のテーブルのフィールドはさまざまな整数です。
私の仕事:
フィールドをold_dataからnew_dataにコピーします。
両方のテーブルに日付が存在する場合、 new_dataのフィールドが置き換えられます。
日付がnew_dataに存在しない場合、正しい行が追加され、フィールドがコピーされます。
これが私が得た距離です:
一時列を作成します。
ALTER TABLE `new_data` ADD `tempColumn` TEXT NULL;
old_dataからデータをコピー:
INSERT INTO `new_data` (`tempColumn`) SELECT `this_is_col` FROM `old_data`;
一時列とnew_dataを結合します。this_is_col . (ここまでたどり着いていないので、このステップを本当に理解していません)。
MERGE? `tempColumn` `this_is_col`;
一時テーブルを削除
ALTER TABLE `new_data` DROP `tempColumn`;
2 番目のアクション (データを一時列に転送する) を実行すると、次のエラーが発生します。
#1062 - Duplicate entry '0000-00-00' for key 1
そして今、私は立ち往生しています。どんな助けでも大歓迎です。MySQL と phpMyAdmin を使用して SQL コマンドをテストしています。