table1 と table2 の 2 つのテーブルがあります。
table1 には が14 columns
あり、table2 にはがあります15 columns
。両方の表のfirst 14 columns
は同じで、同じ順序です。table1 の特定の行を table2 にコピーし、タイムスタンプを 15 列目に挿入したいと考えています。これに対するクエリの書き方は?
table1 と table2 の 2 つのテーブルがあります。
table1 には が14 columns
あり、table2 にはがあります15 columns
。両方の表のfirst 14 columns
は同じで、同じ順序です。table1 の特定の行を table2 にコピーし、タイムスタンプを 15 列目に挿入したいと考えています。これに対するクエリの書き方は?
INSERT INTO t2(c1,c2,c3)
SELECT c1,c2, NOW() FROM t1;
* を使用することもできますが、これは将来の問題のレシピです。テーブルの 1 つで列の定義を変更すると、クエリが失敗します。
insert into table2
select *, current_timestamp
from table1
where table1.some_column = 'whatever' -- etc
便利ですが、これはもろいです。すべての列に名前を付ける方がクリーンで適切です。
insert into table2 (col1, col2, col3, ..., col15, col16)
select col1, col2, col3, ..., col15, current_timestamp
from table1
where table1.coln = 'whatever' -- etc