2011-05-02 13 views
1

こんにちは、読んでいただきありがとうございます。ヘルプを挿入するヘルプ

私は同じ列を持つ2つのテーブルを持っています。私は最初のテーブルのデータを2番目のテーブルにしたいと思います。挿入クエリは非常に簡単です:INSERT INTO Table1 SELECT * FROM Table2。しかし、私の問題は、OpenERPをアップグレードすると、テーブルの列の位置が変更されます。したがってINSERT INTO Table1 SELECT * FROM Table2クエリが機能しません。あなたはこれを解決するのを手伝ってもいいですか?すべての回答は高く評価されます...ありがとうございます!

Table1:   Table2: 
NAME COUNT  NAME COUNT 
name1 1   name3 3 
name2 2   name4 4 
name3 3   name5 5 
name4 4   name6 6 

SOLUTION:使用information_schema.columnsテーブル。

SELECT column_name 
FROM information_schema.columns 
WHERE table_schema='public' AND table_name='tablename' 

答えて

3

この文字列で検索してください:

INSERT INTO Table1 (name1, name2, name3, name4) 
    SELECT name3, name4, name5, name6 
    FROM Table2; 
+0

返信いただきありがとうございます。しかし、私はそれを使用することはできません。私は非常に多くのテーブルにこのクエリを書いているので。 'INSERT INTO Table1 SELECT * FROM Table2'のような非常に柔軟なクエリが必要です – Zeck

+0

"DESCRIBE tableName" SQLクエリを実行してテーブルのフィールドを取得し、上記のクエリを動的に作成することをお勧めします。 – Dan

+0

DESCRIBEキーワークはpostgresql 9で動作しません。 – Zeck