Проблема с автоинкрементным первичным ключом (MySQL) - PullRequest
2 голосов
/ 16 мая 2010

У меня есть 2 таблицы, каждая из которых использует первичный ключ другого в качестве внешнего ключа. Первичные ключи для обоих установлены на auto_increment.

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

Ответы [ 4 ]

4 голосов
/ 16 мая 2010

Каждая основная база данных предоставляет средства для поиска идентификатора только что вставленной записи; в противном случае идея автоматически увеличенных идентификаторов была бы не очень полезной.

В MySQL вы можете использовать mysql_insert_id(). См. PHP-функцию с тем же именем или MySQL-функцию , которую она выполняет.

1 голос
/ 16 мая 2010

mysql_insert_id может дать вам значение последнего сгенерированного значения первичного ключа автоинкремента.

Если вы используете PDO (что вам следует), вы можете использовать PDO :: lastInsertId () . Это будет работать для всех систем баз данных, которые поддерживаются PDO.

0 голосов
/ 16 мая 2010

После первоначальной вставки функция mysql_insert_id () вернет значение автоинкрементного идентификатора, чтобы вы могли использовать его при следующей вставке

0 голосов
/ 16 мая 2010

Вы можете использовать эту функцию: mysql_insert_id , чтобы получить последний вставленный идентификатор

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...