Я бег запроса SQL, выглядит немного как этотдублирование KEY UPDATE ID = LAST_INSERT_ID (идентификатор) без увеличения AUTOINDEX
INSERT INTO people (Name, Role)
VALUES('{$Name}', '{$Occupation')
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id)
В таблице «люди» имеет суррогатный ключ ID в качестве первичного, что устанавливается MySQLs Autoindex.
«Имя» и «Роль» объединены как составной уникальный ключ.
Проблема заключается в том, что когда я запускаю этот запрос и ударяю кого-то с тем же именем и ролью и получаю соответствующий идентификатор, автоиндекс все равно увеличивается.
Возможно ли это предотвратить, или мне нужно запустить 2 отдельных запроса, чтобы проверить, существует ли уже и затем вставить?
Этот код выглядит так, как будто он отчаянно нуждается в использовании * placeholder values *. Существует большая вероятность того, что эти две вещи [дыры SQL-инъекций] (http://bobby-tables.com/). – tadman
Вам также, вероятно, придется нормализовать эту таблицу и лучше справиться с столкновениями. Что, если есть два человека по имени «Дейв Тейлор», которые оба доктора? – tadman