На вставке я ловлю ограничение на уникальность данных mysql_errno () 1062.
Это хорошо работает, но я хочу найти, что существующая строка восстанавливает или изменяет его.
Есть ли существует метод для получения идентификатора строки на сбое вставки? Я попробовал mysql_insert_id (), но понял, что это только возвратит строку, которую я вставляю (или отказавший для вставки) поэтому, я добираюсь 0.
Нет ли никакая опция, кроме как выпустить другой mysql_query и просто выполнить выбор на дублирующемся значении?
Я просто хочу удостовериться, что существует не лучше, более быстрый, более экономичный способ сделать это.
Если вы пытаетесь вставить новую строку или обновить существующие значения, то вам нужно REPLACE INTO . Также рассмотрите INSERT ... ON DUPLICATE KEY UPDATE Синтаксис , если есть ограничения, связанные, поскольку REPLACE INTO будет DELETE, а затем INSERT.
Вам нужно будет проверить таблицу на наличие «уникальных» ключей ( SHOW CREATE TABLE
перечислит их все), а затем запросите таблицу связанных значений в запросе вставки, который вы пытались сделать. Итак, если вы вставляете поля A, B, C, D и B, C с уникальным ключом, тогда:
SELECT id, B, C FROM table WHERE B=$B and C=$C;