29.10.2011, 17:34
|
жажду знаний
|
|
Регистрация: 17.07.2009
Сообщений: 202
|
|
вопрос по mysql
ребята подскажите (если такое возможно конечно)
нужно у любой позиции таблицы поле id (с AUTO_INCREMENT) изменить на значение которое должно идти следующим (то есть на значение показателя AUTO_INCREMENT)
по сути сделать позицию таблицы последней
я а то сначала выясняю последний id и потом только изменяю а это два запроса, можно ли сделать одним???
|
|
29.10.2011, 23:12
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
так делать незачем.
Если вам понадобилось так сделать, то вы что-то делаете неправильно.
Расскажите более подробно о вашей ситуации, и мы расскажем что вы делаете неправильно
|
|
29.10.2011, 23:52
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
bushstas,
Одним запросом, сделать это нельзя. Т.к. тебе в любом случае придется сначала выяснить значение последнего поля. А вообще, как уже подметил Gvozd, это идиотизм менять вручную AUTO_INCREMENT, он придуман для того чтобы его не меняли вручную.
ps: Если быть более точным, то одним запросом тебе не даст сделать это сама MySQL, так как одновременно нельзя выполнить UPDATE с подзапросом SELECT на одной таблице. ( doc)
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Последний раз редактировалось Gozar, 30.10.2011 в 00:17.
|
|
30.10.2011, 12:00
|
жажду знаний
|
|
Регистрация: 17.07.2009
Сообщений: 202
|
|
да наверное делаю неправильно, тогда следует переделать таблицу. В таблице содержаться посетители, имеются поля с датой и временем(отдельно), зашел посетитель обновились дата и время (если посетитель с таким user_id уже записан, если нет просто вставляем), я так понимаю мне нужно сделать вместо даты и времени timestamp (одно поле)чтобы выборку делать по timestamp поскольку мне нужно выбирать из таблицы по порядку с самых последних, а изменять id мне нужно было чтобы как раз посетитель поднмался на самый верх выборки то есть становился последним с наибольшим id
спасибо за ответы, теперь ясно что одним запросом невозможно
да понятно незачем id трогать нужно просто исходить в выборке из времени-даты
еще возможно могут возникать конфликты пока у одного пользователя сервер выясняет следующий id для другого пользователя сервер вставил новую позицию то есть получится конфликт одинаковых id, возможно ли такое?
еще вопрос: для timestamp поля как вставлять данные? с помощью NOW() или date('Y-m-d H:i:s')???
Последний раз редактировалось bushstas, 30.10.2011 в 12:13.
|
|
30.10.2011, 13:29
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от bushstas
|
еще вопрос: для timestamp поля как вставлять данные? с помощью NOW() или date('Y-m-d H:i:s')???
|
тип поля задай CURRENT_TIMESTAMP и не нужно будет выбирать между NOW() и date(...).
ps: почитай про блокировки строк и таблиц
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
30.10.2011, 16:45
|
жажду знаний
|
|
Регистрация: 17.07.2009
Сообщений: 202
|
|
спасибо за ответ
то есть если использовать скажем INSERT DELAYED вместо INSERT конфликта можно избежать? или на что конкретно обратить внимание?
))) у меня нет типа полей CURRENT_TIMESTAMP
Mysql Version information: 3.2.3
воозможно следует обновить denwer
ставлю просто TIMESTAMP по умолчанию пишет что CURRENT_TIMESTAMP
Последний раз редактировалось bushstas, 30.10.2011 в 16:53.
|
|
30.10.2011, 16:56
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от bushstas
|
воозможно следует обновить denwer
|
Даже не знаю стоит ли, v3 вышла 10 лет назад, текущая v5.5. Может стоит снести нафиг денвер и поставить всё самостоятельно.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
30.10.2011, 19:49
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Сообщение от Gozar
|
Даже не знаю стоит ли, v3 вышла 10 лет назад, текущая v5.5. Может стоит снести нафиг денвер и поставить всё самостоятельно.
|
или как вариант поставить свежий денвер
|
|
30.10.2011, 21:45
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
dmitriymar,
Если ты заказчик или ну совсем начинающий, то да, вариант хорош. Я предпочитаю точно знать что у меня в системе установлено, как настроено и за что отвечает и где копать если "вдруг".
Собственно вопросы этой темы пришли от незнания предмета с которым работает человек. Установка системы самостоятельно первый шаг к пониманию работы всех её компонентов.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
31.10.2011, 19:22
|
|
:-/
|
|
Регистрация: 28.09.2009
Сообщений: 1,126
|
|
Сообщение от dmitriymar
|
или как вариант поставить свежий денвер
|
xampp лучше ставить
|
|
|
|