|
|
|
| Есть таблица с столбцом auto_increment и ещё один столбец, который должен дублировать столбец auto_increment. Задача - в одном запросе INSERT внести во второй столбец значение вставленного auto_increment. Как сделать всё в одном запросе до меня не дошло, сделал так - сначала узнаю значение auto_increment, потом заношу его в базу.
# Выбираем значение auto_increment
$query_sel = mysql_query("SHOW TABLE STATUS LIKE 'new'");
$index = mysql_fetch_array($query_sel);
$index = $index['Auto_increment'];
# Помещаем запись в БД
$query_add = mysql_query("INSERT INTO new VALUES (0, '$index')");
|
Можно ли как-то это упростить? | |
|
|
|
|
|
|
|
для: NIK
(25.03.2007 в 14:04)
| | Так делать нельзя. Если Вы не хотите огрести проблемы из-за повторения выделенных идентификаторов, получать их можно лишь через запрос mysql_insert_id() (или LAST_INSERT_ID уровня SQL).
В сущности вариантов два, если не рассматривать экзотику.
а) Получать идентификаторы отдельной таблицей-секвенцией и затем добавлять в основную таблицу всё необходимое - два INSERT-запроса
б) Добавлять запись первым запросом и модифицировать её вторым. Два запроса: INSERT + UPDATE
Если брать экзотику, можно воспользоваться хзранимыми процедурами и/или триггерами (это, кстати, штатный вариант для не MySQL реализаций СУБД.) Сомневаюсь, что в коенечном итоге, число запросов будет меньше. | |
|
|
|