MySQL возвращает уникальный идентификатор на дубликате, как? - PullRequest
0 голосов
/ 15 декабря 2010

Я получил уникальный ключ на несколько полей в таблице. С PHP я получаю приятную ошибку, как и при попытке вставить те же данные. Что я пытаюсь архивировать, так это то, что MySQL возвращает мне первичный ключ поля, сгенерировавшего ошибку.

Итак, когда я вставляю что-то дублирующееся, есть ли способ, с помощью которого MySQL может вернуть «исходный» идентификатор без выбора всех полей, которые я пытался вставить?

Tnx заранее

Ответы [ 3 ]

2 голосов
/ 15 декабря 2010

Вы можете использовать mysql_error(), чтобы получить сообщение типа Duplicate entry '1' for key 'PRIMARY', которое затем можно проанализировать, чтобы выяснить, каково значение дублированного ключа.

0 голосов
/ 15 декабря 2010

Если у вас есть поле AUTO_INCREMENT (id или что-то еще), вы можете использовать ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), чтобы значение LAST_INSERT_ID возвращало значение столбца id, когда вставка "не удалась".Однако он больше не потерпит неудачу, и это то, что нужно учитывать.

0 голосов
/ 15 декабря 2010

mysql не может этого сделать .. может быть, если вы сделаете процедуру или функцию для этого, это возможно, но вы должны подумать, действительно ли вам это нужно?

...