PostgreSQL - СЕРИЙНЫЙ
В PostgreSQL есть особый тип генератора объектов базы данных, который называется SERIAL. Он используется для генерации последовательности целых чисел, которые часто используются в качестве первичного ключа таблицы.
Синтаксис: имя_переменной SERIAL
При создании таблицы эту последовательность целых чисел можно создать следующим образом:
СОЗДАТЬ ТАБЛИЦУ имя_таблицы ( id СЕРИЙНЫЙ );
Назначая SERIAL столбцу id, PostgreSQL выполняет следующее:
- На начальном этапе генерируются последовательности целых чисел, где следующее значение по умолчанию зависит от значения столбца.
- Поскольку SERIAL всегда генерирует последовательность целых чисел, важно установить, что нулевое значение не добавляется в качестве идентификатора к любому столбцу. Это делается путем добавления ограничения NOT NULL.
- Наконец, необходимо установить владельца последовательности для столбца ID. Эти идентификаторы автоматически удаляются при удалении столбца или таблицы.
PostgreSQL поддерживает 3 последовательных псевдотипа, а именно SMALLSERIAL, SERIAL и BIGSERIAL, которые имеют следующие характеристики: Имя Размер хранилища Диапазон НЕБОЛЬШИЕ 2 байта С 1 по 32, 767 СЕРИЙНЫЙ 4 байта 1-2, 147, 483, 647 БОЛЬШОЙ 8 байт С 1 по 9, 223, 372, 036, 854, 775, 807
Пример 1:
Сначала мы создадим таблицу животных со столбцом id в качестве столбца SERIAL, как показано ниже:
CREATE TABLE animals( id SERIAL PRIMARY KEY, name VARCHAR NOT NULL );
Теперь при вставке значений в таблицу можно использовать любую из следующих команд:
ВСТАВИТЬ животных (имя) ЦЕННОСТИ («Собака»);
или,
ВСТАВИТЬ В животных (идентификатор, имя) ЗНАЧЕНИЯ (ПО УМОЛЧАНИЮ, «Собака»);
Итак, давайте добавим несколько строк в нашу таблицу животных, используя следующую команду:
ВСТАВИТЬ животных (имя) ЦЕННОСТИ ('Собака'), ('Кот'), ('Корова'), ('Тигр'), ('Змея'), ('Бык');
Теперь проверьте, автоматически ли присвоены идентификаторы каждой строке, используя следующую команду:
ВЫБРАТЬ * ИЗ животных;
Выход:
Пример 2:
Сначала мы создадим таблицу фруктов со столбцом id в качестве столбца SERIAL, как показано ниже:
СОЗДАТЬ ТАБЛИЦЫ фрукты ( id СЕРИЙНЫЙ ПЕРВИЧНЫЙ КЛЮЧ, имя VARCHAR NOT NULL );
Теперь при вставке значений в таблицу можно использовать любую из следующих команд:
ВСТАВИТЬ В фрукты (название) ЦЕННОСТИ («Яблоко»);
или,
ВСТАВИТЬ В фрукты (идентификатор, имя) ЗНАЧЕНИЯ (ПО УМОЛЧАНИЮ, «Яблоко»);
Итак, давайте добавим несколько строк в нашу таблицу фруктов, используя следующую команду:
ВСТАВИТЬ В фрукты (название) ЦЕННОСТИ ('Яблоко'), ('Банан'), ('Вишня'), ('Манго'), ('Виноград'), ('Апельсин');
Теперь проверьте, автоматически ли присвоены идентификаторы каждой строке, используя следующую команду:
ВЫБРАТЬ * ИЗ фруктов;
Выход: