2013-10-27 3 views
2

У меня есть таблица КЛИЕНТ с client_id как автоматический приращение. Теперь мне нужно заполнить другие столы СЕРВИС, КОСТЮМЫ и STOCK в то же время. Проблема в том, что мне нужно ввести вновь созданный client_id из CLIENT в другие таблицы.Стол AUTO_INCREMENT в другой таблице

Прямо сейчас, что я делаю:

  1. вставить строку в таблице CLIENT.
  2. Извлечь MAX (client_id) из этой таблицы.
  3. Положить это в другие.

Здесь я беспокоюсь о согласованности, так как все зависит от того, что MAX (client_id) будет недавно сгенерирован. Есть ли другой способ сделать это, не подвергая риску последовательность?

Помощь Пожалуйста

ответ

3

Вы можете достичь его с помощью

mysql_insert_id() 

Она возвращает значение AUTO INCREMENT в последнем запросе. Если последний запрос не генерирует значение автоматического прироста, он вернет 0.

Для получения дополнительной информации рассмотрим Php.net manual.

EDIT:

Как уже упоминалось, Mysql является устаревшим и использовать Mysqli или PDO будет более безопасным.

Mysqli

Процедурный стиль: mysqli_insert_id (mysqli $link)

Объектно-ориентированный стиль: $mysqli->insert_id

PDO

$PDO->lastInsertId()

+0

благодаря дорогой. MYSQL_ * теперь обесценивается. используйте mysqli_ * или PDO. – Rahul

Смежные вопросы