PostgreSQL

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

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

Синтаксис:

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

>> CREATE TABLE table_name (id SERIAL);

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

За да получите концепцията за автоматично увеличаване, моля, уверете се, че 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 към описанията на таблиците, като използвате нашите илюстрации като справка.

Урок за битка за Уеснот
Битката за Уеснот е една от най-популярните стратегически игри с отворен код, които можете да играете по това време. Тази игра не само се разработва о...
0 А.д. Урок
От многото стратегически игри, 0 A.д. успява да се открои като изчерпателно заглавие и много дълбока, тактическа игра, въпреки че е с отворен код. Раз...
Урок за Unity3D
Въведение в Unity 3D Unity 3D е мощен двигател за разработка на игри. Това е кръстосана платформа, която ви позволява да създавате игри за мобилни уст...