簡體   English   中英

插入表B選擇*從表A,但表B中有一個額外的列,是否可以?

[英]Insert Into Table B Select * From Table A, but with an extra column in Table B, is it possible?

我有表A和表B。表A有列A,B和C,表B有列A,B,C 和D。

如果我執行以下操作:

INSERT INTO TableB
SELECT * FROM Table A
WHERE (....)

即使使用表B的額外列,它也會允許我這樣做嗎? 我正在我的項目中嘗試執行此操作,但是,他們告訴我表B應該與表A具有相同的列,但要多一列。

謝謝。

如果兩個表中的列都不相同,則必須在insert和select語句中顯式指定列。

因此,在您的特定情況下

INSERT INTO TableB (A, B, C)
SELECT A, B, C FROM Table A
WHERE (....)

否則,如果您未在insert語句中指定列,則在大多數DBMS中都假定應從表定義中獲取列,並且在您的情況下,它看起來像是INSERT INTO TableB (A, B, C, D) -並假定4列,但是SELECT * FROM Table A將僅生成3列而不是4列。這就是您得到錯誤的原因。

您應該指定將表A中的值插入到表B的哪些列中。 例如:

CREATE TABLE foo (col1 INT, col2 INT);
INSERT INTO foo
VALUES (1,2);

CREATE TABLE bar (col1 INT,col2 INT, col3 INT);
INSERT INTO bar (col1,col2)
SELECT * FROM foo

將完全按照您想要的去做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM