mysql INSERT INTO ... SELECT

时间:2014-03-06 15:12:15

标签: php mysql sql heidisql

我想在表中选择一行并将其插入另一个表中,如下所示:

INSERT INTO  positionenneu
select *
from positionenneu_0603 where belegnummer like '4106192%'

由于重复了id值,我收到了错误消息。在两个表中都是id主键AUTO_INCREMENT。 如果没有id列,我怎么能这样做? 谢谢你的回答。 祝你有愉快的一天!

2 个答案:

答案 0 :(得分:1)

请勿使用*并指定列列表,自然会省略id列:

INSERT INTO  positionenneu (foo, bar, baz)
select foo, bar, baz
from positionenneu_0603 where belegnummer like '4106192%'

或者,如果您需要,您当然可以在某处使用id列:

INSERT INTO  positionenneu (foo, bar, baz, positionenneu_0603_id)
select foo, bar, baz, id
from positionenneu_0603 where belegnummer like '4106192%'

答案 1 :(得分:0)

最好指定要插入的列。这也允许您跳过id字段:

INSERT INTO  positionenneu (field1,field2,field3)
    select field1_0603, field2_0603, field3_0603
    from positionenneu_0603 where belegnummer like '4106192%'