Как да настроите първичен ключ за автоматично увеличаване на PostgreSQL?

How Setup Postgresql Auto Increment Primary Key



Може да има случаи, когато изграждате и поддържате таблици в PostgreSQL, когато искате конкретни стойности за колона, която се генерира при поискване. Това би било особено вярно за колони с идентификатори, които действат като първичен ключ на таблицата. За щастие, псевдотипът SERIAL позволява да се направи удобно автоматично увеличаваща серия от числа. Серия е вид обект на база данни в PostgreSQL, който произвежда поредица от индекси или цели числа. Последователността на PostgreSQL произвежда низ от различни цели числа, което го прави подходящ за използване като първичен ключ при генериране на нова таблица. Ще ви демонстрираме какви автоматични увеличения са в PostgreSQL и ще използваме псевдотипа SERIAL в това ръководство.

Синтаксис:

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







>>CREATE TABLE table_name( документ за самоличностСЕРИЕН);

Нека сега разгледаме по -подробно декларацията CREATE TABLE:



  • PostgreSQL първо генерира субект от серия. Той произвежда следващата стойност от поредицата и я задава като референтна стойност по подразбиране на полето.
  • PostgreSQL прилага имплицитното ограничение NOT NULL към поле за идентификатор, тъй като поредицата произвежда числови стойности.
  • Полето id ще бъде разпределено като притежател на поредицата. Ако полето за идентификация или самата таблица са пропуснати, последователността ще бъде отхвърлена.

За да получите концепцията за автоматично увеличаване, моля, уверете се, че PostgreSQL е монтиран и конфигуриран във вашата система, преди да продължите с илюстрациите в това ръководство. Отворете обвивката на командния ред на PostgreSQL от работния плот. Добавете името на вашия сървър, на който искате да работите, в противен случай го оставете по подразбиране. Напишете името на базата данни, която се намира на вашия сървър, на който искате да работите. Ако не искате да го промените, оставете го по подразбиране. Ще използваме тестовата база данни, затова я добавихме. Можете също да работите с порт по подразбиране 5432, но можете също да го промените. В крайна сметка трябва да предоставите потребителското име за избраната от вас база данни. Оставете го по подразбиране, ако не искате да го променяте. Въведете паролата си за избраното потребителско име и натиснете Enter от клавиатурата, за да започнете да използвате командната обвивка.







Използване на SERIAL ключова дума като тип данни:

Когато създаваме таблица, обикновено не добавяме ключовата дума SERIAL в полето на основната колона. Това означава, че трябва да добавим стойностите към колоната с първичен ключ, докато използваме инструкцията INSERT. Но когато използваме ключовата дума SERIAL в заявката си, докато създаваме таблица, не трябва да добавяме стойности на първична колона, докато вмъкваме стойностите. Нека да хвърлим един поглед към него.

Пример 01:

Създайте табличен тест с две колони id и име. Идентификаторът на колоната е дефиниран като колона с първичен ключ, тъй като нейният тип данни е SERIAL. От друга страна, името на колоната се дефинира като тип данни TEXT NOT NULL. Опитайте командата по -долу, за да създадете таблица и таблицата ще бъде създадена ефективно, както се вижда на изображението по -долу.



>>CREATE TABLE Test( документ за самоличностСЕРИЙЕН ОСНОВЕН КЛЮЧ, име ТЕКСТ НЕ НУЛ);

Нека вмъкнем някои стойности в името на колоната на новосъздадената таблица TEST. Няма да добавяме никаква стойност към идентификатора на колоната. Можете да видите, че стойностите са успешно вмъкнати с помощта на командата INSERT, както е посочено по -долу.

>>INSERT INTO Test(име)СТОЙНОСТИ(„Aqsa“),('Римша'),(„Хан“);

Време е да проверите записите в таблицата „Тест“. Опитайте следната инструкция SELECT в командната обвивка.

>>SELECT*ОТ Тест;

От изхода по -долу можете да забележите, че идентификаторът на колоната автоматично има някои стойности в нея, въпреки че не сме добавили никакви стойности от командата INSERT поради типа данни SERIAL, който сме посочили за идентификатора на колоната. Ето как типът данни SERIAL работи самостоятелно.

Пример 02:

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

>>INSERT INTO Test(име)СТОЙНОСТИ('Хасам')ВРЪЩАНЕдокумент за самоличност;

Чрез проверка на записите на таблицата Test, използвайки заявката SELECT, получихме следния изход, както е показано на изображението. Петият запис е ефективно добавен към таблицата.

>>SELECT*ОТ Тест;

Пример 03:

Алтернативната версия на горната заявка за вмъкване използва ключовата дума DEFAULT. Ще използваме име на идентификатор на колона в командата INSERT, а в секцията VALUES ще му дадем ключовата дума DEFAULT като нейната стойност. Заявката по -долу ще работи по същия начин при изпълнение.

>>INSERT INTO Test(документ за самоличност, име)СТОЙНОСТИ(ПО подразбиране, „Състезание“);

Нека отново проверим таблицата, използвайки заявката SELECT, както следва:

>>SELECT*ОТ Тест;

Можете да видите от изхода по -долу, новата стойност е добавена, докато идентификаторът на колоната е увеличен по подразбиране.

Пример 04:

Поредният номер на полето SERIAL колона може да бъде намерен в таблица в PostgreSQL. За да се постигне това, се използва методът pg_get_serial_sequence (). Трябва да използваме функцията currval () заедно с метода pg_get_serial_sequence (). В тази заявка ще предоставим името на таблицата и нейното име SERIAL колона в параметрите на функцията pg_get_serial_sequence (). Както можете да видите, ние сме посочили таблица Test и идентификатор на колона. Този метод се използва в примера за заявка по -долу:

>>SELECT currval(pg_get_serial_sequence('Тест', 'документ за самоличност'));

Заслужава да се отбележи, че нашата функция currval () ни помага да извлечем последната стойност на последователността, която е 5. Долната снимка е илюстрация за това как може да изглежда изпълнението.

Заключение:

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