2017-07-07 19 views
0

私のように作成したメインテーブル持っている:私は復元のみ名前と電話を含む新しいテーブルbackup_dateを取得しながら挿入(INSERT INTO)配列を含む別のテーブルにテーブル(SERIAL)

CREATE TABLE main_data 
    (
     id SERIAL NOT NULL, 
     name character varying(249), 
     telephone character varying(248) 
    ) 

をし、私のデータベースに追加してください。

今、私はbackup_dateテーブルがmain_tableに追加されたとき、それは自動的にidのシーケンスを続けるようmain_databackup_dateを追加したいです。どうやってやるの?

多くの検索の後、私はこの解決策しか得られません。

INSERT INTO users (name, age, id) VALUES ('Mozart', 20, DEFAULT);

私はbackup_date内のデータの膨大な量を持っているとして、私はそれを使用することはできません。

答えて

1

私は右のあなたを取得する場合、あなたが必要とするすべてがある:

insert into main_data (name,telephone) select name,telephone from backup_date 
+0

SERIALは自動増分IDを意味しますか? – jarlh

+0

シリアルは、シーケンスを作成するためのショートカットです。フィールドに 'nextval'という名前のテーブルのデフォルト値を設定してください - そう、非常に近いと思います。 –

+0

ありがとうございます。便利なようだ! – jarlh

-1

こんにちはハッサン -

あなたのID列が自動インクリメントである場合は、ちょうどあなたのコードがされる -

insert into main_data (name,telephone) select name,telephone from backup_date where [your condition] 

ID列が自動インクリメントでない場合は、最初に自動インクリメントを設定し、上記のクエリを実行します。ありがとう:)

関連する問題