Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> insert и вложенный select 
:(
    Опции темы
Loki
Дата 10.8.2013, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 244
Регистрация: 9.7.2006

Репутация: нет
Всего: нет



нужно сделать запрос с обновлением порядкового номера.
например есть таблица с num(0,1,2,3,4...) и id (324234,23423423,2354235,586786,...)

я делаю запрос что-бы получить наибольший num
Код

select num from tabl order by num desc limit 1

и к нему нужно сделать +1 и поместить в ту же таблицу с новым id.
id primary key.
например..., но т.к. я использую primary id по id, это не сработает
Код

insert into tabl (num) select num from tabl order by num desc limit 1;

Как в такой запрос добавить еще один столбец для insert?


edit:

сделал используя create sequence

Это сообщение отредактировал(а) Loki - 10.8.2013, 08:10
PM MAIL   Вверх
LSD
Дата 26.8.2013, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

Репутация: 3
Всего: 537



Это неправильный способ, в случае race condition будет 2 записи с одинаковым num. Нужно вначале заблокировать таблицу, потом выбрать и вставить максимальное значение, и потом снять блокировку.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Zloxa
Дата 26.8.2013, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3470
Регистрация: 12.9.2008

Репутация: 3
Всего: 161



Цитата(LSD @  26.8.2013,  17:58 Найти цитируемый пост)
Это неправильный способ

Это ошибочнкая оценка способа.

ты наверное не дочитал до конца:
Цитата(Loki @  10.8.2013,  08:46 Найти цитируемый пост)
сделал используя create sequence

И теперь кому-то может показаться, что ты коментировал последнюю строку.


Это сообщение отредактировал(а) Zloxa - 26.8.2013, 19:52


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PostgreSQL | Следующая тема »


 




[ Время генерации скрипта: 0.1135 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.