我的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列?我必须在几个表上使用此代码。所以我不能写所有专栏。
答案 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";