将所有内容从一个表复制到另一个表 - 更改值,并具有自动递增ID?

时间:2018-04-05 16:40:29

标签: mysql sql

我正在尝试复制" TableA"的全部内容。 to" TableB" ...但是有一些捕获,首先,表B需要有所有新的自动递增ID(我将它设置为BIGINT,并在模式中自动递增),然后我需要" refereceID"的值。在TableB中始终拥有" id" TableA中该行的值。第三,有一个"报告"现在,我希望它始终具有' 1'的价值。

这是我当前的SQL:

INSERT into tableB(id, report, referenceID, address, zip, last_seen_on, created) 
VALUES( 
    ,1
    ,[id] 
    ,[address] 
    ,[zip] 
    ,[last_seen_on] 
    ,[created])
SELECT * FROM TableA

但是我一直收到一个SQL错误,如下所示:

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在'附近使用。 1,[id],[地址],[zip],[last_seen_on],[创建]'在第11行

1 个答案:

答案 0 :(得分:2)

我认为这就是你需要的(请注意这个语法适用于SQL,错过了MySQL部分,但对MySQL来说应该非常相似/相同)

    INSERT into tableB(report, referenceID, address, zip, last_seen_on, created) 
Select         1
        ,[id] 
        ,[address] 
        ,[zip] 
        ,[last_seen_on] 
        ,[created]
from TableA

你的插入符号比你的值有更多的列(如果id是Insert语句中的自动增量值,你应该可以将其保留为off)。