0

table1 と table2 の 2 つのテーブルがあります。

table1 には が14 columnsあり、table2 にはがあります15 columns。両方の表のfirst 14 columnsは同じで、同じ順序です。table1 の特定の行を table2 にコピーし、タイムスタンプを 15 列目に挿入したいと考えています。これに対するクエリの書き方は?

4

2 に答える 2

2
INSERT INTO t2(c1,c2,c3)
SELECT c1,c2, NOW() FROM t1;

* を使用することもできますが、これは将来の問題のレシピです。テーブルの 1 つで列の定義を変更すると、クエリが失敗します。

于 2012-06-13T07:35:27.377 に答える
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
于 2012-06-13T07:34:18.080 に答える