0

我想将table1的内容复制到table2中,但这不是直接复制,因为table2包含的列比table 1多。结构类似于这样:

表 1 { 列 2 列 4 列 6 }

表 2 { 列 1 列 2 列 3 列 4 列 5 列 6 }

我想要做的是将 table1 中的每一行添加到 table2,并为缺少的列设置默认值。任何帮助,将不胜感激。

4

6 回答 6

3

你可以做一个

INSERT INTO xxx
SELECT yyy

并在 select 子句中放置默认值。

INSERT INTO Table2(column1, column2, column3, column4, column5, column6)
SELECT 'horse', column2, 2, column4, 'what ever I want', column6 
FROM Table1

因此 int Table2,所有 column1 都将具有“马”值。所有 column3 将有 2。等等。

于 2013-01-17T08:55:54.813 回答
1

请试试

INSERT INTO 
    Table2  (
    column1,
    column2,
    column3,
    column4,
    column5,
    column6,
        )
SELECT 
    'StaticValue1',
    column2,
    'StaticValue2'
    column4,
    'StaticValue3'
    column6,
FROM 
    Table1
于 2013-01-17T09:20:24.187 回答
1

使用INSERT..INTO SELECT声明

INSERT INTO table2 (column2, column4, column6)
SELECT column2, column4, column6
FROM table1

所以在这种情况下, columns: column1, column2,column3将有空值。或您设置的任何默认值。

于 2013-01-17T08:56:05.760 回答
1

要将完整表复制到新表中:

SELECT * INTO table2 FROM table1;

http://www.w3schools.com/sql/sql_select_into.asp

要将表复制到现有表中:

INSERT INTO table2
SELECT * FROM table1;

http://www.w3schools.com/sql/sql_insert_into_select.asp

于 2013-06-20T14:46:27.057 回答
1

不擅长 SQL 但类似这样:

INSERT INTO [Table1] (column2, column4, column6) SELECT (column1, column2, column3) FROM [Table2]

希望这可以帮助。可能有用的链接,http://www.blackwasp.co.uk/SQLSelectInsert.aspx

投票给我我需要积分:P

于 2013-01-17T08:58:41.660 回答
0
insert into TABLE2
select null colum1, column2,null colum3,column4,null colum5,column6
from((
Select  TABLE1.column2, TABLE1.column4, TABLE1.column6
from TABLE1, TABLE2
where TABLE1.primarykey=TABLE2.primarykey))
于 2013-06-20T15:17:30.537 回答