id при вставке сразу нескольких строк

  • Автор темы Автор темы alex77
  • Дата начала Дата начала

alex77

Новичок
id при вставке сразу нескольких строк

Здравствуйте.

mysql 5.0,
есть табличка `id`, `name`, `title` тип innodb
`id` - auto_increment primary key
выполняю
INSERT INTO `tbl` (`name`, `title`)
VALUES ("1234", "1234"), ("1234", "1234"), ("1234", "1234"), ("1234", "1234") и т.д.
мне после вставки нужно знать какие ид. я вставил. т.е. у меня должен быть массив ид. там дальше я ими пользуюсь.
 
Сначала извлекаете ваш последний id из таблицы
Затем лочите таблицы на вставку(так как у innodb row-level locking).
Затем после вставки своей пачки вытаскиваете список id которые больше чем ваше последнее id

-~{}~ 30.01.09 13:54:

И не забудьте снять лок таблитцы
 
Glazyrin Sergey а почему так сложно, если уж лочить таблицы на запись, то номера последовательно должны идти или нет?

-~{}~ 30.01.09 12:58:

alex77 а зачем тебе?
 
А если там очень большая пачка вставляется.
Это негарантирует того, что где то какой то другой не вставится. Мы не знаем сколько будет обрабатываться запрос.

-~{}~ 30.01.09 14:02:

Хотя возможно вы правы x-yuri - но имхо все равно лучше лочить. Хотя интересно услышать мнение весьма почтенных гуру :)
 
Сначала извлекаете ваш последний id из таблицы
Затем лочите таблицы на вставку(так как у innodb row-level locking).
Затем после вставки своей пачки вытаскиваете список id которые больше чем ваше последнее id
Большое спасибо, попробую этот вариант.
 
alex77 если использовать этот вариант, то первый пункт можно пропустить и в 3-ем использовать LAST_INSERT_ID
а что за задача?
 
Сверху