2016-08-04 5 views
0

나는 내 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) 

아이디어 란을 건너 뛰는 방법은 무엇입니까? 여러 테이블에서이 코드를 사용해야합니다. 그래서 모든 컬럼을 쓸 수는 없습니다.

당신은 기본적으로 요구하고
+1

DBMS 무슨 일이?이 특정 SQ에 따라 달라집니다 L 제품. – RBarryYoung

+1

오류 메시지를 기반으로 mysql 태그 추가 –

답변

1

은 "내가 어떻게 select * 사용하지만 열 중 하나 배제하지 않는다?`

죄송합니다, 그게 무슨 select * 수단이 아니다. 그것은 모든 열을 얻을 것을 의미합니다. 어떤 구문에 없다 select *-except-for-id에 대한 SQL. 하나를 제외한 모든 열을 원하는 경우

, 당신은 밖으로 당신이 원하는 않는 모든 열을 주문해야합니다.

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