Индекс еще непоявившейся записи

NIMahno

Guest
Индекс еще непоявившейся записи

Можно ли средствами PHP-MySQL узнать под каким индексом в таблицу внесется следующая запись?
Поясню нетривиальность вопроса. Как узнать это после выполнения запроса, мне известно. А тут по ходу компоновки запроса создается еще и директория, в которую помещают аплоадные файлы. В ее имени присутствует индекс будующей записи. Его я узнавал, как (MAX(сушествующих) + 1), но за время работы часть записей могли удалить, и вышеуказанное выражение перестанет выдавать нужные результаты.
 

Profic

just Profic (PHP5 BetaTeam)
1) создаешь запись
2) создаешь каталог
3) запись апдейтишь (но только если в каком-нить поле указвается название каталога)
 

Demiurg

Guest
NIMahno
ты аргументируй, чем тебе не нравится предложение профика, вместо того, что бы огрызаться.
 

Dallas

Guest
Все знают и уже давное тебе поведали, только ты не захотел слушть. Во многих статьях говориться о том, чтобы никаких привязок не делали к полю auto_increment. Либо если так надо, то сделай такое поле сам - не ошибешься, только с трудом представляю, что в этом есть хоть какая-то надобность... вот именно, разве что нетривиальная.

-~{}~ 16.07.04 01:14:

Почти дословно: в MySQL существует глюк, в виду которого по непонятным причинам индексное поле "перескакивает" значение/я (насчет "я" неуверен). Уже хотя бы по одной этой причине, которая означена не в одном месте (кажись, даже в обычной книжке видел) не следует к нему привязываться.
 

neko

tеam neko
Dallas

давай ты воздержишся от бредовых комментариев
никаких "непонятных причин" и глюка нет
есть некие реалии хранения данных в файле
 

Screjet

Новичок
Атомарным способом формируй транзакцию.
Т.е. сохраняй ВСЕ данные в период обработки транзакции либо в сессии и временном каталоге, либо во временной таблице мускула. И по крону озганизуй зачистку временных данных (для безопасности и экономии дискового пространства). Ну а если транзакция успешная, то перебрасывай все промежуточные данные в основные таблицы, каталоги.
 

Demiurg

Guest
>Во многих статьях говориться о том, чтобы никаких привязок не делали к полю auto_increment.
что это за статьи такие ?
 

NIMahno

Guest
Как просто тему оживить :)
У профика решение обычное, в рамках "линейного европейского мышления", т.е. первое, что приходит на ум, в том числе и мне, еще до обращения в форум, потом я придумал еще способ, который тоже не слишком меня устроил.
А в форум обратился за чем-то "изощренно-красивым", "восточным"...
 

neko

tеam neko
помоему это довольно таки очевидно что никакого другого решения тут быть не может в принципе
 

chira

Новичок
NIMahno
потом я придумал еще способ
ты зачем на форум пришёл? показать свою крутизну?
ну приведи свой нелинейный способ.
уже несколько человек тебе сказали как делать и твоя первая мысль была сама верная.
а ты упёрся в ожидание восточного чуда ...
 

Anatolii

Guest
О Auto_Increment

На сколько я знаю, то у свойства таблицы есть поле Auto_Increment, в котором хранится значение, которое будет вставляться, но как достучаться до этого флага - я не знаю
Может кто подскажет !!!????
 

neko

tеam neko
я вот думаю как правильно делать в таких ситуациях
расказывать честно
или сказать чтоб туда не лез?
:)

или помолчать в тряпочку?
 

NIMahno

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

Фанат

oncle terrible
Команда форума
NIMahno
в рамках "линейного европейского мышления",
прости, а сам факт того, что ты занимаешься программированием, построенным на стройной логике, тебя не смущает?
А наличие у булевых переменных всего двух значений?
может быть, и здесь придумать что-нибудь "восточное"?
"Истина", "Ложь", "Вах, дарагой, зачэм такой слова нехароший гаваришь, да?"
 

Eugene Bond

sudo rm - rf /
В AdoDB это решается созданием таблицы-призрака из одного автоинкрементного столбца. Вставляешь запись в нее. Получаешь свеженькое значение для ключа оригинальной таблицы и работаешь на здоровье с этим значением
 

Dallas

Guest
Demiurg
К сожалению, сейчас не могу ни одной ссылки привести ни на статью, ни на книжку. Возможно, со словом "многие" переборщил.

Насчет "непонятных причин" тоже погорячился (сосвоей низкой колокольни).

В общем, спасибо всем, кто поправил. Постараюсь впредь выглядеть менее бредово :)
 
Сверху