MySQL INSERT INTO ... SELECT выбрасывает ошибку 1064 - PullRequest
3 голосов
/ 27 февраля 2009

Попытка дублировать некоторые строки в таблице, но просто изменить столбец ssreportid с 4 на 6:

INSERT INTO ssreportparticipant (ssreportid, sssurveyparticipantid)
VALUES
SELECT 6, sssurveyparticipantid FROM ssreportparticipant 
WHERE ssreportid = 4

Ошибка говорит # 1064 рядом с 'select 6, ...', но если я просто запускаю предложение select, он выбирает записи отлично, с новым id 6 в столбце ssreportid.

Таблица имеет первичный ключ, называемый ssreportparticipantid, и есть уникальный ключ (ssreportid, sssurveyparticipantid). Обратите внимание, что предложение select создает новые записи, которые имеют уникальные пары ключей, так что это не проблема. Я попытался заключить скобки вокруг предложения select и даже использовать два псевдонима для таблицы, без радости.

Использование версии сервера 5.0.45.

Пожалуйста, скажите мне, что от усталости программиста я пропускаю запятую или что-то в этом роде.

Спасибо

-Josh

Ответы [ 2 ]

8 голосов
/ 27 февраля 2009

Я думаю, вы должны удалить "VALUES"

0 голосов
/ 27 февраля 2009

Я не уверен, но, возможно, возможно, что вы не можете вставить в таблицу выбор из той же таблицы. Вы пытались выбрать из другой таблицы, просто для тестирования?

...