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

Форум MySQL

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

 

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

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

тема: Следующее значение auto_increment
 
 автор: Skyonex   (04.04.2006 в 15:15)   письмо автору
 
 

В таблице имеется:
поле: id
тип: auto_increment

Подскажите пожалуйста кто знает, как мне получить ПЕРЕД вставкой строки, следующее или текущее значение счетчика? С учетом того, что поля удаляются иногда. Т.е. MAX(id) не подходит.

ps Mysql 4.1.0 a

   
 
 автор: Trianon   (04.04.2006 в 15:19)   письмо автору
 
   для: Skyonex   (04.04.2006 в 15:15)
 

Перед вставкой оно врядли Вам что-то даст. Хотя бы потому, что запросы могут идти параллельно.
Чем Вас не устраивает значение, метящее первую строку вставки?

   
 
 автор: Skyonex   (04.04.2006 в 15:47)   письмо автору
 
   для: Trianon   (04.04.2006 в 15:19)
 

Мне хотелось бы реализовать следующее:

1. Пользователь заливает файл (например фотку)
2. Далее проверям ее параметры, если гуд, тогда создаем шесть различных вариантов ее на сервере: id_тип1, id_тип2....
3. Записываем в базу: insert into mytable(userid) values(UserId);
А ID автоматом.

Не подумал о параллельности... да, видимо алгоритм придется передумать :(

   
 
 автор: Trianon   (04.04.2006 в 15:51)   письмо автору
 
   для: Skyonex   (04.04.2006 в 15:47)
 

шесть различных вариантов залитого объекта?
Что мешает добавить шесть строк? И id первой из них (т.е. last_insert_id) поместить ...э... туда, куда надо.

   
 
 автор: cheops   (04.04.2006 в 16:04)   письмо автору
 
   для: Skyonex   (04.04.2006 в 15:47)
 

Вы можете узнать id только что вставленной записи при помощи PHP-функции mysql_insert_id() или при помощи MySQL-функции LAST_INSERT_ID().

   
 
 автор: NIK   (10.05.2006 в 22:37)   письмо автору
 
   для: cheops   (04.04.2006 в 16:04)
 

не согласен, способ узнать текущую позицию auto_increment я считаю всё-таки есть.

Пример тому - phpMyAdmin - в любой таблице с auto_increment в Операциях - внизу - в Опциях таблицы есть текстовое поле с текущей позицией auto_increment

Сейчас вот сижу разбираюсь как эо сделано, мб кто-нибудь поможет?

   
 
 автор: cheops   (11.05.2006 в 01:08)   письмо автору
 
   для: NIK   (10.05.2006 в 22:37)
 

Его не сложно вычислить при помощи запроса
SELECT MAX(id) + 1 AS max FROM tbl

   
 
 автор: NIK   (11.05.2006 в 15:27)   письмо автору
 
   для: cheops   (11.05.2006 в 01:08)
 

хм, вроде что-то не то... если удалить запись, то получится уже совершенно другое число, хотя в phpMyAdmin то что нужно

   
 
 автор: Trianon   (11.05.2006 в 15:32)   письмо автору
 
   для: NIK   (11.05.2006 в 15:27)
 

Можно получить поле Auto_increment в результате запроса SHOW TABLE STATUS LIKE 'таблица'

   
 
 автор: NIK   (11.05.2006 в 20:08)   письмо автору
 
   для: Trianon   (11.05.2006 в 15:32)
 

оно самое, спасибо всем!!!!

   
Rambler's Top100
вверх

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