0

テーブル A の posts テーブルからデータベース B の post テーブルにデータをコピーしようとしています。データベース B には、スキーマが A とは異なる空の post テーブルがあります。

これが私が思いついたクエリです:

INSERT INTO b.post (post_id, thread_id, user_id, username, post_date) SELECT 
                     postid,  threadid,  userid,  username, dateline FROM a.post;

しかし、上記のコマンドを実行すると、mysql CLI から取得します。

エラー 1062 (23000): キー 'PRIMARY' のエントリ '1' が重複しています

これを修正するにはどうすればよいですか?

PS データベース b は新しい Xenforo フォーラム用で、表は移行する Vbulletin フォーラム用です。b のオーバーライド データは気にしませんが、明らかにスキーマをそのまま維持したいと考えています。

4

1 に答える 1

0

主キー制約を削除するだけです。

ALTER TABLE tablename DROP PRIMARY KEY

Edit

しかし、明らかに、スキーマをそのまま維持したいと思います。

INSERT INTO b.post (post_id, thread_id, user_id, username, post_date) 
SELECT postid,  threadid,  userid,  username, dateline FROM a.post 
group by postid;

注: post_id が主キーであるため、一部のレコードが欠落します。

主キーについてお読みください

于 2013-05-26T19:28:49.567 に答える