Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / изменение индекса в таблице / 6 сообщений из 6, страница 1 из 1
29.08.2005, 23:23
    #33239948
twistfire
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение индекса в таблице
есть таблица. в ней задано, что поле id - Serial Primary Key
Куча удаленных записей.

Если я добавляю что-то в базу, появл. запись с id=56 (например).
Могу ли я изменить значение поля id на меньшее, например 10, если его нет в базе?
Если да - то как?
...
Рейтинг: 0 / 0
30.08.2005, 03:25
    #33240019
фффф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение индекса в таблице
Если надо изменить значение поля - обычный UPDATE, если же сбросить счётчик:
Код: plaintext
1.
ALTER SEQUENCE tablename_id_seq RESTART WITH  10 ;
...
Рейтинг: 0 / 0
30.08.2005, 09:21
    #33240172
twistfire
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение индекса в таблице
А вот как сделать UPDATE?
Раньше я делал по признаку id, а теперь мне сам id в одной записи надо изменить. Я могу делать по другому полю?
...
Рейтинг: 0 / 0
30.08.2005, 10:27
    #33240317
twistfire
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение индекса в таблице
Странно...
изменил я id

Теперь когда делаю выборку:
SELECT * FROM prod_cat ORDER BY id DESC;

результат с id (который я изменил) =30 располагается ниже всех остальных. В чем проблема?
...
Рейтинг: 0 / 0
30.08.2005, 13:55
    #33241088
фффф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение индекса в таблице
Следствие MVCC. Строка при UPDATE физически добавляется в конец (точнее новая копия строки помещается в свободную страницу), а старое значение помечается как удаленное.
...
Рейтинг: 0 / 0
30.08.2005, 16:03
    #33241499
nostromo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение индекса в таблице
twistfireТеперь когда делаю выборку:
SELECT * FROM prod_cat ORDER BY id DESC;

результат с id (который я изменил) =30 располагается ниже всех остальных. В чем проблема?

Странно. Неужели неправильно сортирует? А если
SELECT * FROM prod_cat ORDER BY id ASC ;
тоже неправильно?
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / изменение индекса в таблице / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]