Оператор MySQL INSERT SELECT выбрасывает ошибку 1062: повторяющаяся запись '' для ключа 2 - PullRequest
0 голосов
/ 19 февраля 2012

По сути, у меня есть таблица с именем document, которая содержит столбец с именем «host». Я создал еще один столбец с именем "rev_host", и все, что я хочу, - это хранить строки с "host" в "rev_host". Например, если значением «host» является «www.cmu.edu», я хочу сохранить «ude.umc.www» в «rev_host». Я тогда использую утверждение

INSERT INTO document (rev_host) SELECT REVERSE(host) from document;

Это утверждение выдает ошибку 1062:

ERROR 1062 (23000): Duplicate entry '' for key 2

В чем проблема этого утверждения? Если я не могу вставить таким образом. Как правильно выполнить эту вставку?

1 Ответ

2 голосов
/ 19 февраля 2012

Ваш запрос вставляет в таблицу целый ряд новых строк, тем самым вводя дубликаты ключей. если вы хотите обновить только один столбец и оставить прежние записи, используйте UPDATE вместо:

UPDATE document SET rev_host=REVERSE(host);
...