2016-07-22 24 views
0

私は50以上の列を持つアプリケーションテーブルを持っていますが、このアプリケーション用のアーカイブテーブルもあります。列数が値の数と一致しません

今、私はメインテーブルにアーカイブ・テーブルから復元したいのですが、その列数が一致しないため、クエリを実行している:

INSERT INTO apps 
SELECT * FROM apps_archive 
WHERE client_id = 1234 

は私にエラーを与える:

Error Code: 1136 - Column count doesn't match value count at row 1

私はIGNOREステートメントを使用しようとしましたが、ユニークなキーが問題になる可能性がある場合にのみ機能します。

私に役立つものは、たとえ一致する列でのみこのクエリを実行するか、またはアーカイブテーブルをメインテーブル構造に一致させることです。

おかげ

+1

他の選択肢は考えられませんが、列が一致していることを確認することはできません。 ( – KaeL

+0

はい、私は理解しています、彼らは目的のためのいくつかの異なるフィールドを持って、アーカイブテーブルはいくつかの追加のフィールドがあります –

+0

私は簡単な解決策はないと思う、 – KaeL

答えて

1

列数は、彼ら二つのテーブルが同じテーブルスキーマを持っていないことを意味し、一致していませんので。 appsテーブルのカラム数が少ない場合は、apps_archiveテーブルの結果を投影します。それ以外の場合は、Talend Open Studios for data integrationのようなデータ統合ツールを使用してデータの移行を行うことができます。

+0

ありがとうございました。あなたのお名前を書いておきます。答えは、簡単な解決策があるかどうかを知りたかったのですが、わかりましたが、1つではありません。 –

+0

あなたはようこそ! – cdaiga

関連する問題