Как да направите PostgreSQL Auto Increment

Kak Da Napravite Postgresql Auto Increment



Един от начините да осигурите уникалните идентичности във вашата база данни на PostgreSQL е използването на функцията за автоматично увеличаване. Когато е активирана, тази функция генерира уникална самоличност за всеки нов запис във вашата таблица. При автоматично нарастване, ако се опитате да вмъкнете нова стойност със същия уникален идентификатор, това ще доведе до грешка. Автоматичното нарастване може да се използва в различни случаи и можете да дефинирате как искате да се генерира уникалният идентификатор. Повече подробности за автоматичното нарастване на PostgreSQL са подробно описани в тази публикация. Прочетете!

Два метода за автоматично нарастване на PostgreSQL

Когато създавате база данни, трябва да имате първичен ключ за всяка таблица, за да сте сигурни, че в таблиците няма да се появят дубликати. Един от начините за създаване на първични ключове е използването на функцията за автоматично нарастване за типа данни INT. PostgreSQL генерира стойността на първичния ключ за всички записи, освобождавайки разработчика от неприятностите по ръчно въвеждане на първичния ключ.

Има два подхода, които можете да използвате, за да създадете автоматично нарастване във вашата база данни PostgreSQL.







Метод 1: Използване на SERIAL псевдо-тип

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



Имайте предвид, че това автоматично нарастване е присвоено на тип данни INT и се изтрива, след като таблицата или колоната бъдат премахнати.



Ето синтаксиса за създаване на автоматично увеличение:





СЪЗДАВАЙТЕ ТАБЛИЦА TABLE_NAME ( id SERIAL тип_данни ) ;

За нашия случай нека създадем таблица с име „подробности“, която съдържа „user_id“ като наш автоматично нарастващ и първичен ключ. Включваме и две други колони.



Когато искаме да вмъкнем стойностите в нашата таблица, ние вмъкваме само за другите колони и пропускаме колоната за автоматично нарастване, тъй като нейните стойности се генерират автоматично. Ето пример, в който добавяме пет записа към нашата таблица:

Когато използваме оператора SELECT, за да проверим записите в таблицата, забележете, че колоната „user_id“ съдържа уникални идентичности, които в нашия случай са числа, започващи от 1. Това е как да направите автоматичното нарастване на PostgreSQL с помощта на псевдотипа SERIAL.

Метод 2: Създаване на последователност

Когато използвате псевдотипа SERIAL, за да създадете стойностите за автоматично нарастване, вие не контролирате как се създават вашите уникални самоличности. За предишния пример видяхме, че нашите уникални идентичности започват от 1. Ако обаче искате да контролирате тези стойности, да речем, че искате да определите в кой момент да започнете да ги генерирате, трябва да създадете персонализирана последователност.

PostgreSQL има опцията SEQUENCE, където можете да посочите името на колоната, което да използвате за автоматично нарастване и да дефинирате началната стойност за колоната. Например, ако искаме да започнем стойностите от 100, създаваме следната потребителска последователност:

CREATE SEQUENCE име на колона начална_стойност;

След като създадете последователността, вече можете да създадете своята таблица. Обърнете внимание, че трябва да използвате същото име на колона, където сте създали последователност като „nextval(‘holder’)“ за създадената таблица. По този начин PostgreSQL препраща към последователността, за да знае какъв ред да следва, когато генерира уникалната идентичност за колоните.

Изпълняваме следната команда, за да създадем нашата таблица:

Продължете да вмъквате стойностите в създадената таблица за съответните колони.

Когато изпълним заявката „избор“, за да изброим записите в таблицата, можем да видим, че сме успели да контролираме нашето автоматично нарастване. Колоната „user_id“ започва стойността си от 100 и генерира следващите стойности за другите записи, които вмъкваме в таблицата.

Това е другият начин за създаване на автоматично нарастване за PostgreSQL.

Заключение

Създаването на автоматично увеличение е полезно за създаване на уникалност във вашата таблица. Когато искате да дефинирате първичен ключ за вашата таблица, използвайте функцията за автоматично нарастване за типа данни INT. PostgreSQL генерира стойностите автоматично, като гарантира, че във вашата таблица няма дубликати. Дефинирахме как да създадем автоматично нарастване за PostgreSQL и предоставихме два примера за двата метода, които можете да използвате. И двата метода са приложими в зависимост от сценария, който имате. Опитайте ги!