Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Внести новое значение auto_increment в одном запросе
 
 автор: NIK   (25.03.2007 в 14:04)   письмо автору
 
 

Есть таблица с столбцом 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')");


Можно ли как-то это упростить?

   
 
 автор: Trianon   (25.03.2007 в 17:15)   письмо автору
 
   для: NIK   (25.03.2007 в 14:04)
 

Так делать нельзя. Если Вы не хотите огрести проблемы из-за повторения выделенных идентификаторов, получать их можно лишь через запрос mysql_insert_id() (или LAST_INSERT_ID уровня SQL).

В сущности вариантов два, если не рассматривать экзотику.
а) Получать идентификаторы отдельной таблицей-секвенцией и затем добавлять в основную таблицу всё необходимое - два INSERT-запроса
б) Добавлять запись первым запросом и модифицировать её вторым. Два запроса: INSERT + UPDATE

Если брать экзотику, можно воспользоваться хзранимыми процедурами и/или триггерами (это, кстати, штатный вариант для не MySQL реализаций СУБД.) Сомневаюсь, что в коенечном итоге, число запросов будет меньше.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования