Ламерский вопрос по SQL @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
На страницу 1 2  >  Страница 1 из 2 [ Сообщений: 52 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Заголовок сообщения: Ламерский вопрос по SQL
Сообщение Добавлено: 5 Февраль 2004, 15:09:45 
Не подскажете, как посмотреть идентификатор (id, primary key | auto_increment) для записи которую я вставляю? :gent:

_________________
можно на ТЫ.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 5 Февраль 2004, 15:25:03 
Если ты говоришь о MySQL, то функцией last_insert_id()

_________________
We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 5 Февраль 2004, 15:28:09 
именно о ней, спасибо :cool:

_________________
можно на ТЫ.
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 5 Февраль 2004, 15:52:18 
Да, но она работает так же как и mysql_insert_id(), тобишь показывает ид после запроса, а мне нужно узнать ид ДО того как я вставляю в базу данные =)

_________________
можно на ТЫ.
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Сообщение Добавлено: 5 Февраль 2004, 16:19:05 
bE(o0L, без использования транзакций ты не должен это делать. да даже если используешь транзакции - не стоит так делать.

_________________
Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 5 Февраль 2004, 16:24:19 

bE(o0L писал(а):
а мне нужно узнать ид ДО того как я вставляю в базу данные =)



Тебе это не нужно.
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 5 Февраль 2004, 17:06:58 
Да ладно, например phpMyAdmin показывает последний id (см. таблица -> операции).

даже Можно изменить последний id.
query="ALTER TABLE tablename PACK_KEYS = 0 CHECKSUM = 0 DELAY_KEY_WRITE = 0 AUTO_INCREMENT = YOUR_NEW_ID";


Цитата:
Может я не так выразился
(до вставки данных в таблицу, мне _нужно_ знать с каким id запись туда пойдёт)


_________________
можно на ТЫ.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 5 Февраль 2004, 17:27:16 

bE(o0L писал(а):
даже Можно изменить последний id



Вылизывать половички тоже можно. Но делать это вовсе не следует.

Простой вопрос: за какой надобностью тебе нужно знать id до вставки записи при использовании автоинкремента?
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 5 Февраль 2004, 17:37:05 
у меня к записи в базе привязано туча файлов, ябы хотел дать им имя как и ID, только вся работ с файлами идёт до запросов в базу (названия файлов также хранятся в базе).
Можно конечно делать два запроса -> первый добавит запись а второй узнаёт id, затем файл переименовать и сделать ещё один запрос на UPDATE

впринципе сейчас так и работает, но хотелось бы за раз всё делать.

_________________
можно на ТЫ.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 5 Февраль 2004, 17:39:07 
Что мешает переименовать файл после вставки записи?

_________________
We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 5 Февраль 2004, 17:41:13 
впринципе ничего, просто двойная работа :cool:

_________________
можно на ТЫ.
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Сообщение Добавлено: 5 Февраль 2004, 20:32:47 
bE(o0L, перестрой логику работы. сначала пиши в базу, а потом в файл.

_________________
Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 5 Февраль 2004, 20:52:25 
нужно не в файл, а имя файла как будущий id :cool:
Пожалуй будем в базу писать мнимые имена файлов, а потом переименовывать файлы.
Правда нецелесообразно и ресурсоёмко... :cool:

_________________
можно на ТЫ.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 6 Февраль 2004, 14:15:35 

bE(o0L писал(а):
Пожалуй будем в базу писать мнимые имена файлов, а потом переименовывать файлы.



Что мнимого в таких именах?


Цитата:
Правда нецелесообразно и ресурсоёмко... :cool:



В чем ты видишь нецелесообразность и ресурсоемкость?
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 6 Февраль 2004, 15:22:40 

Цитата:
Что мнимого в таких именах?


по ним нельзя открыть файл. почему - см. выше :cool:


Цитата:
В чем ты видишь нецелесообразность и ресурсоемкость?



запись файлов, работа базы, переименование файлов. Тогда как хотелось, запись файлов с нужным именем, работа базы.
:cool:

p.s.
в любом случае это уже не относится к топику. меня интересует - как узнать следующий id до записи в базу. :gent:

_________________
можно на ТЫ.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 6 Февраль 2004, 15:29:26 

bE(o0L писал(а):
запись файлов, работа базы, переименование файлов. Тогда как хотелось, запись файлов с нужным именем, работа базы.
:cool:



Что мешает сделать так: работа базы, запись файлов?


Цитата:
в любом случае это уже не относится к топику. меня интересует - как узнать следующий id до записи в базу. :gent:



Ответ очевиден: убрать автонумератор и создавать id самостоятельно.
@TSV
постоянный участник
11
Сообщения: 4736
Зарегистрирован: 08.05.03
Сообщение Добавлено: 6 Февраль 2004, 15:31:21 
bE(o0L, есть кардинальный способ - директивно задавать собственный unique id и пользоваться для твоих целей именно им. А корректного способа узнать следующий стандартный id нету. И вряд ли будет. :gent:
<sergio.ga>
новый человек
0
Сообщения: 102
Зарегистрирован: 13.06.03
Откуда: Харьков, Украина
Сообщение Добавлено: 6 Февраль 2004, 15:32:13 
Тупой способ: найди максимальный ID и при вставке явно укажи на единицу больший.
Но это всё per rectum.
Сначала делаются проверки, а потом запись.
В таком раскладе запись файлов спокойненько размещается после записи в БД.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 6 Февраль 2004, 15:32:27 
@TSV, узнать следующий id несложно. Но это требует лоченья базы. Как следствие -- резкое падение производительности.

_________________
We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 6 Февраль 2004, 15:33:46 
Crazy,


Цитата:
Что мешает сделать так: работа базы, запись файлов?


ничего такого, с чем нельзя было бы справится


Цитата:
Ответ очевиден: убрать автонумератор и создавать id самостоятельно.


в данном случае это не возможно

_________________
можно на ТЫ.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 6 Февраль 2004, 15:34:48 

<sergio.ga> писал(а):
Тупой способ: найди максимальный ID и при вставке явно укажи на единицу больший.



Тоже только с обязательные лоченьем.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 6 Февраль 2004, 15:35:42 

bE(o0L писал(а):
в данном случае это не возможно



Религия запрещает? :dont:
@TSV
постоянный участник
11
Сообщения: 4736
Зарегистрирован: 08.05.03
Сообщение Добавлено: 6 Февраль 2004, 15:37:12 
Crazy, дык там даже падением производительности можно не отделаться. Еще и клинчи придется ловить самостоятельно. Лоченье вообще лучше не рассматривать для верности.

bE(o0L, еще вариант - поставить дополнительное поле - флажок (bRecordIsValid), который не устанавливается до тех пор, пока запись не стала полностью корректна а имена файлов - "настоящими", то есть файлы существуют и в них нужное тебе содержимое. :)
@TSV
постоянный участник
11
Сообщения: 4736
Зарегистрирован: 08.05.03
Сообщение Добавлено: 6 Февраль 2004, 15:38:38 
bE(o0L, а вообще изменять/добавлять/удалять поля - можно? Или не дают?
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 6 Февраль 2004, 15:47:45 
@TSV,
производительность при варианте записи переименования (плюсь работа с самими файлами серверной программой) достаточно загружают сервер.

Просто я когда то в пхп-мю-админ видел что он показывает будущий id за здорово живёшь. Придётся скачать эту штуку и поглядеть как они реализовали это.

Упорство в этом вопросе объясняется лишь тем, что получив на него ответ и вписав одну строчку в готовый (уже) продукт можно получить результат которого я так добиваюсь :cool:

вроде можно -> add,select, insert,update,delete,create,drop table на базу :cool:

_________________
можно на ТЫ.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 6 Февраль 2004, 15:53:28 

bE(o0L писал(а):
@TSV,
производительность при варианте записи переименования (плюсь работа с самими файлами серверной программой) достаточно загружают сервер.



Сколь велика нагрузка на твой скрипт, если операция переименования файла оказывается значимой при оценке производительности? Больше 10000 обращений в минуту?
@TSV
постоянный участник
11
Сообщения: 4736
Зарегистрирован: 08.05.03
Сообщение Добавлено: 6 Февраль 2004, 15:56:40 
bE(o0L, сто пудов как (last_id+1). Но это не вполне корректно. ;) За время пути собачка может подрасти, а last_id - может поменяться за время обработки. ;)

Ыыы?? add,select, insert,update,delete,create,drop table Хммм... :laugh: :gent:
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 6 Февраль 2004, 15:59:34 
на конкретные файлЫ (в запросе учавствуют 4 файла) конечно же нет стольких обращений, но я не единственный который на этом сервере работает. Поэтому "дорога любая секунда". :cool:

_________________
можно на ТЫ.
@TSV
постоянный участник
11
Сообщения: 4736
Зарегистрирован: 08.05.03
Сообщение Добавлено: 6 Февраль 2004, 15:59:35 
Crazy, bE(o0L, ИМХО в таких случаях не нужно гадать про производительность, а нужно взять и померить. :gent:
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 6 Февраль 2004, 16:00:54 
это я не могу. к тому же суть не в этом. см топик :gent:

_________________
можно на ТЫ.
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 6 Февраль 2004, 16:03:11 
@TSV,
оффтопик:
add,select, insert,update,delete,create,drop table Хммм...


ээ всё что я делал из перечисленного - получалсь

Или я тебя не так понял? :gent:

_________________
можно на ТЫ.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 6 Февраль 2004, 16:04:18 
@TSV, обрати внимание: я и не гадаю о производительности. :) Я как раз не вижу смысла в том, чтобы тратить силы на решение несуществующей проблемы. :)

_________________
We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 6 Февраль 2004, 16:06:31 
:laugh:
проблема как раз существует, и решить её хочется малой кровью :gent:

_________________
можно на ТЫ.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 6 Февраль 2004, 16:12:44 
bE(o0L, ты замерил производительность и нашел узкое место или просто фантазируешь?

_________________
We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Сообщение Добавлено: 6 Февраль 2004, 16:13:21 
bE(o0L, ты как раз пытаешься решить ее не малой кровью.

_________________
Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
На страницу 1 2  >  Страница 1 из 2 [ Сообщений: 52 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100