|
|
|
| Добавляю данные в таблицу многострочным INSERT'ом, например 5 записей. В таблице есть поле автоинкрементное. Можно ли как-нибудь после выполнения запроса добавления записи узнать ВСЕ значения, которые были присвоены автоинкрементом? | |
|
|
|
|
|
|
|
для: tAleks
(12.12.2010 в 18:28)
| | mysql_insert_id()
или запрос last_insert_id() | |
|
|
|
|
|
|
|
для: tAleks
(12.12.2010 в 18:28)
| | Инкрементное поле - это первичный ключ, и никакое другое.
Возвращен будет (может быть) ключ первой добавленной записи и их количество.
Все добавленные идут с четким единичным инкрементом, и никакими другими оказаться не могут. | |
|
|
|
|
|
|
|
для: tAleks
(12.12.2010 в 18:28)
| | Может, добавить поле и начально установить в нем значение 0.
Вставили запись.
Сделали SELECT * FROM table WHERE col = 0 - это и есть последние вставленные записи.
И после выборки UPDATE table SET col = 1 | |
|
|
|
|
|
|
|
для: Лена
(13.12.2010 в 11:01)
| | так а зачем, когда mysql_insert_id() и mysql_affected_rows() вернут и так все необходимое? | |
|
|
|
|
|
|
|
для: tAleks
(12.12.2010 в 18:28)
| | Нет, вопрос маленько не об этом. Уточняю.
Что такое автоинкремент я заню, как узнать последний при вставке ОДНОЙ записи, я знаю.
Вопрос в следующем.
В БД есть несколько записей, сколько неизвестно, какой последний ID тоже не известно.
Вставляю многострочным INSERT'ом, к примеру 5 записей. И надо узнать, какие этим пяти записям были присвоены значения первичного ключа, ватоинкрементом. То что они идут подряд и отличаются на единицу от предыдущего я знаю. | |
|
|
|
|
|
|
|
для: tAleks
(21.12.2010 в 21:13)
| | Если вы всё знаете, зачем спрашиваете? | |
|
|
|
|
|
|
|
для: Gubichev
(21.12.2010 в 21:17)
| | Я не говорил что знаю ВСЕ.
Я спрашиваю о том, чего не знаю. | |
|
|
|
|
|
|
|
для: tAleks
(21.12.2010 в 21:39)
| | Вы уже получили ответ на свой вопрос. Разуйте глаза. | |
|
|
|
|
|
|
|
для: Gubichev
(21.12.2010 в 22:02)
| | . | |
|
|
|
|
|
|
|
для: tAleks
(21.12.2010 в 21:13)
| | Вставляете записи
mysql_insert_id возвращает 21.
mysql_affected_rows возвращает 5.
Следовательно, присвоенные ключи - 21, 22, 23, 24, 25
Что тут неизвестно? | |
|
|
|
|
|
|
|
для: tAleks
(21.12.2010 в 21:13)
| |
<?php
// ...
$sql = "show table status `{$database_name}` like `{$table_name}`;";
$info = mysql_fetch_array(mysql_query($sql));
print_r($info);
|
| |
|
|
|