Как вставить две связанные записи в две таблицы? - PullRequest
2 голосов
/ 04 мая 2011

Я хотел бы вставить две связанные записи в две таблицы. Одна запись связана с другой записью внешним ключом.

например. У меня есть две записи:

product (productid,product_name,category_id)
category (category_id,category_name)

Но category_id - это auto_increment. Так что я не знаю его значение, пока не вставлю его в таблицу категорий. Итак, здесь я должен вызвать три sql-запроса, один - вставить запись в таблицу категорий, второй - извлечь category_id, последний sql-запрос - вставить запись в таблицу продукта.

В целом, кажется, что производительность не будет хорошей из-за выполнения трех запросов sql. Я просто хочу знать, есть ли лучшая практика для этого сценария? Спасибо

Джефф Чжан

Ответы [ 2 ]

0 голосов
/ 04 мая 2011

Проверьте здесь как вы можете получить последний вставленный уникальный идентификатор

Когда новое значение AUTO_INCREMENT имеет Вы также можете получить его выполнив SELECT LAST_INSERT_ID () заявление с mysql_query () и извлечение значения из результата набор, возвращаемый оператором.

Также обратите внимание, что

Для LAST_INSERT_ID () наиболее недавно созданный идентификатор сохраняется в сервер на соединение

0 голосов
/ 04 мая 2011

Вам не нужно вызывать SQL, чтобы увидеть вставленное значение автоинкремента, вы можете использовать функцию last_insert_id .

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