2017-02-01 6 views
0

1つのテーブルのレコードを別のテーブルにコピーしたいのですが、余分な列があります。
表の列は、私は次のよう複数の列をテーブルから別のテーブルにコピーする

Insert into table2 
    Select 
    A, 
    B, 
    C, 
    ... 
    X, 
    '1', 
    '1' 
    from table1 

でそれを行うことができることを知って、この

Table1: A,B,C,...,X 
Table2: A,B,C,...,X,Y,Z 

のように見えますが、テーブルには列が多く含まれている場合、それは非常に非効率的な方法です。私はいくつかのテーブルで同様の手順を実行する必要があります。それを行うより良い方法はありますか?
私は次の試みたが、

insert into table2 select * , '1', '1' from table1; 
+0

DBMSにタグを付けてください。 – McNets

答えて

1

試したことがうまくいくはずです。エイリアスを追加するだけです。

INSERT INTO table2 
SELECT t1.*, 
     '1', 
     '1' 
    FROM table1 t1; 
+0

ありがとうございます、なぜ追加エイリアスの後に動作するのですか? –

+0

'SELECT * FROM table1'を使うと' col1、col2、....、coln'に変換されます。この場合、SQL構文は 'FROM'キーワード以外は何も期待できません。しかし、エイリアスを使用するときは、リストに列を追加することができます。なぜなら、それが結合に遭遇すると思うかもしれないからです(私はそう考える)。エイリアスを使用しない場合でも、 'SELECT table1。* '、' 1 FROM table1'のようにテーブル全体の名前を使用することもできます –

0

は、表2(A、B、C、...、X、Y、Z)への挿入動作しないSELECT(A、B、C、... 、X、 '1'、 '1')

この場合、Y & Zは文字列(文字)です。

関連する問題