Как выполнить автоматическое приращение PostgreSQL

Kak Vypolnit Avtomaticeskoe Prirasenie Postgresql



Один из способов обеспечить уникальность вашей базы данных PostgreSQL — использовать функцию автоматического приращения. Если эта функция включена, эта функция генерирует уникальный идентификатор для каждой новой записи в вашей таблице. Если при использовании автоинкремента вы попытаетесь вставить новое значение с тем же уникальным идентификатором, это приведет к ошибке. Автоинкремент можно использовать в разных случаях, и вы можете определить, как будет генерироваться уникальный идентификатор. Более подробная информация об автоинкременте PostgreSQL описана в этом посте. Читай дальше!

Два метода автоматического приращения PostgreSQL

При создании базы данных у вас должен быть первичный ключ для каждой таблицы, чтобы гарантировать отсутствие дубликатов в таблицах. Один из способов создания первичных ключей — использование функции автоматического приращения для типа данных INT. PostgreSQL генерирует значение первичного ключа для всех записей, освобождая разработчика от необходимости вручную вводить первичный ключ.

Существует два подхода, которые вы можете использовать для создания автоматического приращения в вашей базе данных PostgreSQL.







Способ 1: использование псевдотипа SERIAL

По умолчанию способ создания автоматического приращения для первичных ключей в вашей базе данных — использование ключевого слова SERIEL. При использовании псевдотипа SERIAL создается последовательность для генерации значений. Он отмечает следующее значение в последовательности, и всякий раз, когда вы вставляете новое значение, ему присваивается уникальный идентификатор.



Обратите внимание, что этот автоинкремент присваивается типу данных INT и удаляется после удаления таблицы или столбца.



Вот синтаксис для создания автоинкремента:





СОЗДАВАТЬ СТОЛ ТАБЛИЦА_ИМЯ ( идентификатор SERIAL тип_данных ) ;

В нашем случае давайте создадим таблицу с именем «details», которая будет содержать «user_id» в качестве нашего автоинкремента и первичного ключа. Мы также включаем еще два столбца.



Когда мы хотим вставить значения в нашу таблицу, мы вставляем только для других столбцов и оставляем столбец с автоинкрементом, поскольку его значения генерируются автоматически. Вот пример, где мы добавляем пять записей в нашу таблицу:

Когда мы используем оператор SELECT для проверки записей таблицы, обратите внимание, что столбец «user_id» содержит уникальные идентификаторы, которые в нашем случае представляют собой числа, начинающиеся с 1. Именно так выполняется автоинкремент PostgreSQL с использованием псевдотипа SERIAL.

Способ 2: создание последовательности

Когда вы используете псевдотип SERIAL для создания значений автоприращения, вы не контролируете, как создаются ваши уникальные идентификаторы. В предыдущем примере мы видели, что наши уникальные идентификаторы начинаются с 1. Однако, если вы хотите управлять этими значениями, скажем, вы хотите определить, в какой момент начать их генерировать, вы должны создать собственную последовательность.

PostgreSQL имеет опцию SEQUENCE, где вы можете указать имя столбца, который будет использоваться для автоматического приращения, и определить начальное значение для столбца. Например, если мы хотим начать значения со 100, мы создаем следующую пользовательскую последовательность:

СОЗДАТЬ ПОСЛЕДОВАТЕЛЬНОСТЬ имя_столбца начальное_значение;

После создания последовательности вы можете создать свою таблицу. Обратите внимание, что вы должны использовать то же имя столбца, в котором вы создали последовательность, например «nextval('holder')» для созданной таблицы. Таким образом, PostgreSQL ссылается на последовательность, чтобы знать, какой порядок соблюдать при создании уникального идентификатора для столбцов.

Мы запускаем следующую команду, чтобы создать нашу таблицу:

Приступайте к вставке значений в созданную таблицу для соответствующих столбцов.

Когда мы запускаем запрос «select» для получения списка записей таблицы, мы видим, что нам удалось контролировать наше автоматическое приращение. Столбец «user_id» начинает свое значение со 100 и генерирует последующие значения для других записей, которые мы вставляем в таблицу.

Это другой способ создания автоинкремента для PostgreSQL.

Заключение

Создание автоинкремента полезно для создания уникальности вашей таблицы. Если вы хотите определить первичный ключ для своей таблицы, используйте функцию автоматического приращения для типа данных INT. PostgreSQL автоматически генерирует значения, гарантируя отсутствие дубликатов в вашей таблице. Мы определили, как создать автоинкремент для PostgreSQL, и предоставили два примера двух методов, которые вы можете использовать. Оба метода применимы в зависимости от вашего сценария. Попробуйте их!