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

How Setup Postgresql Auto Increment Primary Key



Могут быть случаи, когда вы создаете и поддерживаете таблицы в PostgreSQL, когда вам нужны определенные значения для столбца, который создается по запросу. Это особенно верно для столбцов id, которые действуют как первичный ключ таблицы. К счастью, псевдотип SERIAL позволяет удобно использовать автоинкрементный целочисленный ряд. Серия - это тип объекта базы данных в PostgreSQL, который производит серию индексов или целых чисел. Последовательность PostgreSQL создает строку различных целых чисел, что делает ее пригодной для использования в качестве первичного ключа при создании новой таблицы. Мы продемонстрируем вам, какие элементы автоинкремента используются в PostgreSQL, и в этом руководстве мы будем использовать псевдотип SERIAL.

Синтаксис:

Общий синтаксис для создания первичного ключа с автоинкрементом следующий:







>>СОЗДАТЬ ТАБЛИЦУ имя_таблицы( я быСЕРИЙНЫЙ);

Давайте теперь посмотрим на объявление CREATE TABLE более подробно:



  • PostgreSQL сначала создает объект серии. Он создает следующее значение в серии и устанавливает его в качестве эталонного значения поля по умолчанию.
  • PostgreSQL применяет неявное ограничение NOT NULL к полю идентификатора, поскольку ряд производит числовые значения.
  • Поле id будет назначено держателем серии. Если поле id или сама таблица опущены, последовательность будет отброшена.

Чтобы понять концепцию автоинкремента, убедитесь, что PostgreSQL смонтирован и настроен в вашей системе, прежде чем продолжить работу с иллюстрациями в этом руководстве. Откройте оболочку командной строки PostgreSQL с рабочего стола. Добавьте имя вашего сервера, на котором вы хотите работать, в противном случае оставьте значение по умолчанию. Напишите имя базы данных, которая находится на вашем сервере, над которым вы хотите работать. Если вы не хотите менять его, оставьте значение по умолчанию. Мы будем использовать тестовую базу данных, поэтому мы ее добавили. Вы также можете работать с портом по умолчанию 5432, но вы также можете его изменить. В конце концов, вы должны указать имя пользователя для выбранной вами базы данных. Оставьте значение по умолчанию, если не хотите его менять. Введите свой пароль для выбранного имени пользователя и нажмите Enter на клавиатуре, чтобы начать использовать командную оболочку.







Использование серийного ключевого слова в качестве типа данных:

Когда мы создаем таблицу, мы обычно не добавляем ключевое слово SERIAL в поле основного столбца. Это означает, что мы должны добавить значения в столбец первичного ключа при использовании оператора INSERT. Но когда мы используем ключевое слово SERIAL в нашем запросе при создании таблицы, нам не нужно добавлять значения основного столбца при вставке значений. Давайте взглянем на это.

Пример 01:

Создайте таблицу Test с идентификатором и именем двух столбцов. Идентификатор столбца был определен как столбец первичного ключа, поскольку его тип данных - SERIAL. С другой стороны, имя столбца определяется как тип данных TEXT NOT NULL. Попробуйте выполнить команду ниже, чтобы создать таблицу, и таблица будет создана эффективно, как показано на изображении ниже.



>>СОЗДАТЬ ТАБЛИЦУ Тест( я быSERIAL PRIMARY KEY, имя TEXT NOT NULL);

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

>>ВСТАВИТЬ В тест(имя)ЦЕННОСТИ(«Акса»),('Римша'),(«Хан»);

Пришло время проверить записи таблицы «Тест». Попробуйте выполнить приведенную ниже инструкцию SELECT в командной оболочке.

>>ВЫБРАТЬ*ОТ теста;

Из выходных данных ниже вы можете заметить, что идентификатор столбца автоматически содержит некоторые значения, хотя мы не добавили никаких значений из команды INSERT из-за типа данных SERIAL, который мы указали для идентификатора столбца. Вот как тип данных SERIAL работает сам по себе.

Пример 02:

Другой способ проверить значение столбца с типом данных SERIAL - использовать ключевое слово RETURNING в команде INSERT. Объявление ниже создает новую строку в тестовой таблице и дает значение для поля id:

>>ВСТАВИТЬ В тест(имя)ЦЕННОСТИ('Хассам')ВОЗВРАЩЕНИЕя бы;

Проверив записи таблицы Test с помощью запроса SELECT, мы получили следующий результат, как показано на изображении. Пятая запись оперативно добавлена ​​в таблицу.

>>ВЫБРАТЬ*ОТ теста;

Пример 03:

Альтернативная версия указанного выше запроса на вставку использует ключевое слово DEFAULT. Мы будем использовать имя идентификатора столбца в команде INSERT, а в разделе VALUES мы дадим ему ключевое слово DEFAULT в качестве его значения. Приведенный ниже запрос будет работать так же после выполнения.

>>ВСТАВИТЬ В тест(я бы, имя)ЦЕННОСТИ(ПО УМОЛЧАНИЮ, «Гонка»);

Давайте еще раз проверим таблицу, используя запрос SELECT следующим образом:

>>ВЫБРАТЬ*ОТ теста;

Из вывода ниже видно, что новое значение было добавлено, а идентификатор столбца увеличен по умолчанию.

Пример 04:

Порядковый номер поля столбца SERIAL можно найти в таблице в PostgreSQL. Для этого используется метод pg_get_serial_sequence (). Мы должны использовать функцию currval () вместе с методом pg_get_serial_sequence (). В этом запросе мы будем указывать имя таблицы и имя ее столбца SERIAL в параметрах функции pg_get_serial_sequence (). Как видите, мы указали тест таблицы и идентификатор столбца. Этот метод используется в приведенном ниже примере запроса:

>>ВЫБРАТЬ currval(pg_get_serial_sequence('Тестовое задание', 'я бы'));

Стоит отметить, что наша функция currval () помогает нам извлечь самое последнее значение последовательности, равное 5. На рисунке ниже показано, как может выглядеть производительность.

Заключение:

В этом руководстве мы продемонстрировали, как использовать псевдотип SERIAL для автоматического увеличения в PostgreSQL. Используя ряды в PostgreSQL, легко создать автоматически увеличивающийся набор чисел. Надеюсь, вы сможете применить поле SERIAL к описаниям таблиц, используя наши иллюстрации в качестве справки.