挿入

2012-04-14 5 views
1

は、私は2つのテーブルを持っているし、別のINSERT INTO tbl_new SELECT FROM tbl_old挿入

にトップコピー1を必要とする彼らの両方が3つのまったく同じ列を持っていますが、私はそれをどのように移入するか、「タイプ」と呼ばれる第四列をtbl_newあり同じクエリで

私はtbl_oldから行をコピーして、セルに値を割り当てる必要があり

"タイプ"

INSERT INTO tbl_new SELECT FROM tbl_old, (type) values (floor(rand() * 10)) 

答えて

1

セイtbl_old 2つの列があり、tbl_newは3

tbl_old 
colA | colB 

tbl_new 
colA | colB | colC 

と仮定している動作しません。 colCにcolAとcolBの値の合計を設定する必要があります。以下試してみてください

INSERT INTO tbl_new (colA, colB, colC) SELECT colA,colB,floor(rand()*10) FROM tbl_old; 
1

INSERT INTO tbl_new (column1,column2,column3,type) 
SELECT column1,column2,column3,floor(rand() * 10) FROM tbl_old 

注:列名でCOLUMN1、column1.column3を置き換えるあなたの例では

INSERT INTO tbl_new (colA, colB, colC) SELECT colA,colB,(colA+colB) FROM tbl_old; 

:あなたはこれを使用することができます。

0

これらの答えは正しいですが、余分な列を除いてすべてが同一であれば、列の書き込みに費やされた時間を想像してください。テーブルの最後に追加の列を持つために、同一であればここで

はずっとすっきりクエリです:

INSERT INTO tbl_new SELECT *, floor(rand()*10) FROM tbl_old;