2013-03-09 3 views
1

MySQL код что-то вроде:вставляются строки идентификаторов в PHP и MySQL с несколькими вкладышами

INSERT INTO table(name, value) VALUES ('name1', 'value1'), ('name2', 'value2'), ('name3', 'value3') 

В основном, множественные вставки в одном операторе SQL.

Как получить идентификаторы вставленных значений. Я предполагаю, что mysql_insert_id() в сочетании с количеством вставок не является безопасным, поскольку кто-то еще может вставить что-то в одно и то же время.

Есть ли другой способ?

+1

http://stackoverflow.com/questions/1285231/php-mysql-retrieving-the-last-inserted-ids-for-multiple-rows – Vimalnath

+0

Благодаря vimalnath, не нашел, что один. – cgf

ответ

2

Вам либо нужно вставить их по одному, либо выяснить идентификатор с последующим запросом.

INSERT INTO table(primkey, value) VALUES ('pk1', 'val1'), ('pk2', 'val2'); 
SELECT FROM table id, primkey where primkey in ('pk1', 'pk2'); 
Смежные вопросы