Синтаксис:
Общият синтаксис за създаване на първичен ключ за автоматично увеличаване е както следва:
>> CREATE TABLE table_name (id SERIAL);Нека погледнем по-подробно декларацията CREATE TABLE:
- PostgreSQL първо генерира сериен обект. Той генерира следващата стойност от поредицата и я задава като стандартна референтна стойност на полето.
- PostgreSQL прилага имплицитно ограничение NOT NULL към поле за идентификация, тъй като серията произвежда числови стойности.
- Полето id ще бъде разпределено като притежател на поредицата. Ако полето id или самата таблица са пропуснати, последователността ще бъде отхвърлена.
За да получите концепцията за автоматично увеличаване, моля, уверете се, че PostgreSQL е монтиран и конфигуриран във вашата система, преди да продължите с илюстрациите в това ръководство. Отворете черупката на командния ред на PostgreSQL от работния плот. Добавете името на вашия сървър, върху който искате да работите, в противен случай го оставете по подразбиране. Напишете името на базата данни, което се намира във вашия сървър, върху който искате да работите. Ако не искате да го промените, оставете го по подразбиране. Ще използваме базата данни „тест“, затова я добавихме. Можете също така да работите на порт по подразбиране 5432, но можете и да го промените. В крайна сметка трябва да предоставите потребителското име за избраната база данни. Оставете го по подразбиране, ако не искате да го променяте. Въведете паролата си за избраното потребителско име и натиснете „Enter“ от клавиатурата, за да започнете да използвате командната обвивка.
Използване на SERIAL ключова дума като тип данни:
Когато създаваме таблица, обикновено не добавяме ключовата дума SERIAL в полето на основната колона. Това означава, че трябва да добавим стойностите към колоната на първичния ключ, докато използваме израза INSERT. Но когато използваме ключовата дума SERIAL в нашата заявка, докато създаваме таблица, не би трябвало да добавяме първични стойности на колони, докато вмъкваме стойностите. Нека хвърлим един поглед върху него.
Пример 01:
Създайте таблица „Тест“ с две колони „id“ и „name“. Колоната „id“ е дефинирана като колона за първичен ключ, тъй като нейният тип данни е SERIAL. От друга страна, колоната „име“ се дефинира като тип данни TEXT NOT NULL. Опитайте командата по-долу, за да създадете таблица и таблицата ще бъде създадена ефективно, както се вижда на изображението по-долу.
>> СЪЗДАВАНЕ НА ТАБЛИЦА тест (id СЕРИАЛЕН ОСНОВЕН КЛЮЧ, име TEXT NOT NULL);
Нека вмъкнем някои стойности в колоната „name“ на новосъздадената таблица „TEST“. Няма да добавяме никаква стойност към колоната „id“. Можете да видите, че стойностите са били успешно вмъкнати с помощта на командата INSERT, както е посочено по-долу.
>> ВЪВЕДЕТЕ В ТЕСТ (име) СТОЙНОСТИ ('Aqsa'), ('Rimsha'), ('Khan');
Време е да проверите записите в таблицата "Тест". Опитайте инструкцията по-долу SELECT в командната обвивка.
>> ИЗБЕРЕТЕ * ОТ тест;От изхода по-долу можете да забележите, че колоната „id“ автоматично има някои стойности в нея, въпреки че не сме добавили никакви стойности от командата INSERT поради типа данни SERIAL, който сме посочили за колоната „id“. Ето как типът данни SERIAL работи самостоятелно.
Пример 02:
Друг начин за проверка на стойността на колоната от тип СЕРИАЛ е използването на ключовата дума RETURNING в командата INSERT. Декларацията по-долу създава нов ред в таблицата „Тест“ и дава стойността за полето „id“:
>> ВЪВЕДЕТЕ В ТЕСТ (име) СТОЙНОСТИ ('Hassam') ВРЪЩАНЕ id;
Чрез проверка на записите на таблицата „Тест“ с помощта на заявката SELECT, получихме изхода по-долу, както е показано на изображението. Петият запис е добавен ефективно към таблицата.
>> ИЗБЕРЕТЕ * ОТ тест;
Пример 03:
Алтернативната версия на горната заявка за вмъкване използва ключовата дума DEFAULT. Ще използваме името на колона “id” в командата INSERT, а в раздел VALUES ще му дадем ключовата дума DEFAULT като стойност. Заявката по-долу ще работи по същия начин при изпълнението.
>> ВЪВЕДЕТЕ В ТЕСТ (идентификатор, име) СТОЙНОСТИ (ПО подразбиране, 'Raza');
Нека проверим таблицата отново, като използваме заявката SELECT, както следва:
>> ИЗБЕРЕТЕ * ОТ тест;Можете да видите от изхода по-долу, новата стойност е добавена, докато колоната „id“ е увеличена по подразбиране.
Пример 04:
Поредният номер на полето СЕРИАЛНА колона може да бъде намерен в таблица в PostgreSQL. За постигането на това се използва методът pg_get_serial_sequence (). Трябва да използваме функцията currval () заедно с метода pg_get_serial_sequence (). В тази заявка ще предоставяме името на таблицата и нейното ИМЕ на колона в параметрите на функцията pg_get_serial_sequence (). Както можете да видите, ние сме посочили таблица „Тест“ и колона „id“. Този метод се използва в примера за заявка по-долу:
>> ИЗБЕРЕТЕ currval (pg_get_serial_sequence ('Test', 'id'));Заслужава да се отбележи, че нашата функция currval () ни помага да извлечем последната стойност на последователността, която е „5“. Картината по-долу е илюстрация на това как може да изглежда представлението.
Заключение:
В това ръководство за ръководство демонстрирахме как да използваме псевдо-типа SERIAL за автоматично увеличаване в PostgreSQL. Използвайки поредица в PostgreSQL, е лесно да се изгради автоматично увеличаващ се набор от числа. Надяваме се, че ще можете да приложите полето SERIAL към описанията на таблиците, като използвате нашите илюстрации като справка.