插入选择自动增量错误

时间:2016-08-04 14:33:27

标签: mysql sql select insert auto-increment

我的SQL代码需要一些帮助:

insert into '.$type.' select * from ' .$type.' where effective_id = '.$id

但是这个代码出错了。

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '3' for key 'PRIMARY' (SQL: insert into actionplan select * from actionplan where effective_id = 3)

任何想法如何跳过id列?我必须在几个表上使用此代码。所以我不能写所有专栏。

1 个答案:

答案 0 :(得分:1)

您基本上问“我如何使用select *但不排除其中一列?”

抱歉,这不是select *的意思。这意味着获取所有列。 SQL中没有select *-except-for-id的语法。

如果你想要除1之外的所有列,那么你必须拼出你想要的所有列。

$sql = "insert into $type (id, col1, col2, col3) 
  select NULL, col1, col2, col3 from $type where effective_id = $id";