4

わずかに異なる 2 つのテーブルがあります。テーブル A には 4 つの列があり、テーブル B には 3 つしかありません。テーブル B からテーブル A にすべてのデータをコピーしたいのですが、追加の列にも1すべての行の値を入力したいと考えています。

これは、余分な列がない場合に機能します。

insert into TABLEA (COL1, COL2, COL3) select COL1, COL2, COL3 from TABLEB;

残念ながら、テーブル A の余分な列は NULL 可能ではないため、後で更新を実行することはできません。

助けてくれてありがとう!

4

5 に答える 5

11

列を指定し、値に定数を使用します (select 句で定数と列参照を混在させることができることに注意してください)。この場合、すべての行が1column の定数を取得するように指定していますCOL4

insert into TABLEA (COL1, COL2, COL3, COL4)
select COL1, COL2, COL3, 1
from TABLEB;
于 2012-10-26T15:08:28.953 に答える
2
insert into TABLEA (COL1, COL2, COL3, extra) 
select COL1, COL2, COL3, 1 
from TABLEB;
于 2012-10-26T15:08:49.310 に答える
1
INSERT INTO tableA SELECT a.*,<VALUE FOR THE EXTRA COLUMN> FROM tableB a

たとえば、の余分な列tableAsys_creation_date

INSERT INTO tableA SELECT a.*,sysdate FROM tableB a

また

INSERT INTO tableA SELECT a.*,'10-Jan-2013' FROM tableB a
于 2013-12-10T18:59:07.510 に答える
1

これを試しましたか?

insert into TABLEA (COL1, COL2, COL3, COL4) select COL1, COL2, COL3, 'Whatever' as COL4 from TABLEB;

私のコンピューターで動作します:-)

于 2012-10-26T15:13:54.533 に答える
0

から定数を選択できます。TableB

INSERT INTO tableA( col1, col2, col3, col4 )
  SELECT col1, col2, col3, 1 col4
    FROM tableA
于 2012-10-26T15:08:42.727 に答える