2016-08-04 3 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) 

Любые идеи, как пропустить колонку id? Я должен использовать этот код для нескольких таблиц. Поэтому я не могу писать все столбцы.

+1

Что СУБД? Это зависит от конкретной SQ L. – RBarryYoung

+1

Добавлен тег 'mysql' на основе сообщения об ошибке –

ответ

1

Вы в основном просите «, как я могу использовать select *, но не исключает один из столбцов?`

К сожалению, это не то, что select * средства. Это означает, что получить всех столбцов. Там нет синтаксиса SQL для select *-except-for-id.

Если вы хотите, чтобы все столбцы, кроме одного, то вы должны изложить все столбцы вы хотите.

$sql = "insert into $type (id, col1, col2, col3) 
    select NULL, col1, col2, col3 from $type where effective_id = $id"; 
Смежные вопросы