powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Это глюк или что?
5 сообщений из 5, страница 1 из 1
Это глюк или что?
    #35714239
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица типа такой:
Код: plaintext
1.
2.
3.
create table mytable (
id bigserial constraint mytableid primary key,
col1 bigint,
col2 text)
Есть другая таблица temptable с такими же столбцами.
Пишу запрос (в pgAdmin'е):
Код: plaintext
insert into mytable (col1, col2) select col1, col2 from temptable where mytable.col1 not in (select distinct col1 from mytable)
Смысл этого запроса - внести в таблицу mytable такие строки из temptable, которых там пока нет.
Так вот, после нажатия F5 в pgAdmin'е я получаю:
duplicate key value violates unique constraint "mytableid"

Но это полбеды. После этого я еще раз 5 - 6 нажимаю F5 и получаю ту же ошибку, а на 7 - 8 получаю сообщение "Запрос успешно завершен". При том что я не меняю ничего, только жму F5.
Если этот запрос генерировался программно, то он тоже выдавал эту ошибку. Но после того, как pgAdmin принудительно "согласился", что запрос правильный, программный запрос тоже начинает выполняться.
В чем проблема?

Postgres и pgAdmin - ставил последнюю версию месяц назад. Моя программа-клиент - Lazarus 0.9.26 + Zeos 6.6.2.
...
Рейтинг: 0 / 0
Это глюк или что?
    #35714265
Funny_Falcon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таблицу mytable были залиты данные вместе с id - при этом соответствующий sequence (который автоматически создаётся для поля serial) никто "подвинуть" не потрудился. В результате этот sequence выдавал уже существующие id , пока не вышел за самый большой из имеющихся.
Смотреть в сторону alter sequence, или в pgadmin3 свойства секвенса в ручную редактировать.
Название секвенса интуитивно понятно.
...
Рейтинг: 0 / 0
Это глюк или что?
    #35714348
Sad Spirit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rockclimber
Пишу запрос (в pgAdmin'е):
Код: plaintext
insert into mytable (col1, col2) select col1, col2 from temptable where mytable.col1 not in (select distinct col1 from mytable)
Смысл этого запроса - внести в таблицу mytable такие строки из temptable, которых там пока нет.
Сдаётся мне, что запрос неправильный. Вместо mytable.col1 должно быть просто col1. А по поводу ошибки согласен с предыдущим оратором.
...
Рейтинг: 0 / 0
Это глюк или что?
    #35714639
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Funny_FalconВ таблицу mytable были залиты данные вместе с id - при этом соответствующий sequence (который автоматически создаётся для поля serial) никто "подвинуть" не потрудился.
То есть если я выполняю запрос
Код: plaintext
insert into mytable (id, col1, col2) values (...) 
то sequence я должен двигать вручную, а если запрос выглядит как
Код: plaintext
insert into mytable (col1, col2) values (...) 
то sequence двигается автоматически? И после каждого запроса 1-го типа надо выполнять что-то вроде
Код: plaintext
alter sequence mysequense restart with <какое-то число> 
?
...
Рейтинг: 0 / 0
Это глюк или что?
    #35714781
Funny_Falcon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rockclimberFunny_FalconВ таблицу mytable были залиты данные вместе с id - при этом соответствующий sequence (который автоматически создаётся для поля serial) никто "подвинуть" не потрудился.
То есть если я выполняю запрос
Код: plaintext
insert into mytable (id, col1, col2) values (...) 
то sequence я должен двигать вручную, а если запрос выглядит как
Код: plaintext
insert into mytable (col1, col2) values (...) 
то sequence двигается автоматически? И после каждого запроса 1-го типа надо выполнять что-то вроде
Код: plaintext
alter sequence mysequense restart with <какое-то число> 
?
Абсолютно верно
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Это глюк или что?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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