Последовательность Postgres по-разному реагирует на код и pgAdmin - PullRequest
0 голосов
/ 15 октября 2018

Я работаю над проектом с Matlab-2017b и PosgreSQL (через драйверы ODBC).В коде есть некоторые файлы, которые нужно было переименовать с соответствующим идентификатором таблицы базы данных.

При выполнении некоторого тестирования со сценарием, где текущее значение последовательности равно 1, результаты теста показывают это странное поведение.

Если pgAdmin-4 Gui используется для открытия свойств последовательности и установки текущего значения в 1 после выполнения кода, последовательность возвращает 2.

Sequence current value altered via pgAdminGui The newly inserted element's id is 2

Но если выполняется следующий запрос из MATLAB:

ALTER SEQUENCE seq RESTART WITH 1;

, то при выполнении кода столбец идентификатора вновь вставленного элемента равен 1.

The newly inserted element's row id after the query executed

Несмотря на то, что код уже обработан для правильной работы, все еще есть интерес к тому, что за этим стоит?

1 Ответ

0 голосов
/ 15 октября 2018

В 1-м случае (PgAdmin) вы установили значение current равным 1, поэтому следующее значение будет 2.

Во 2-м случае ( restart sequence), вы устанавливаете значение next в 1, поэтому следующее значение будет 1. 1. 1009 *

...