Како поставити примарни кључ за аутоматско повећање ПостгреСКЛ-а?

How Setup Postgresql Auto Increment Primary Key



Могу се догодити ситуације у којима правите и одржавате табеле у ПостгреСКЛ -у када желите одређене вредности за колону која се генерише на захтев. Ово би посебно важило за ид колоне које делују као примарни кључ табеле. Срећом, псеудо-тип СЕРИАЛ омогућава да цео низ са аутоматским повећањем буде згодан. Серија је врста објекта базе података у ПостгреСКЛ -у која производи низ индекса или целих бројева. ПостгреСКЛ секвенца производи низ различитих целих бројева, што га чини погодним за употребу као примарни кључ при генерисању нове табеле. Показаћемо вам које меније за аутоматско повећање у ПостгреСКЛ-у користићемо псеудо-тип СЕРИАЛ у овом водичу.

Синтакса:

Општа синтакса за креирање примарног кључа за аутоматско повећање је следећа:







>>ЦРЕАТЕ ТАБЛЕ табле_наме( идСЕРИАЛ);

Погледајмо сада декларацију ЦРЕАТЕ ТАБЛЕ детаљније:



  • ПостгреСКЛ прво генерише ентитет серије. Он производи следећу вредност у низу и поставља је као подразумевану референтну вредност поља.
  • ПостгреСКЛ примењује имплицитно ограничење НОТ НУЛЛ на поље ид јер низ производи нумеричке вредности.
  • Поље ид ће бити додељено као носилац серије. Ако је поље ид или сама табела изостављено, секвенца ће бити одбачена.

Да бисте добили концепт аутоматског повећања, уверите се да је ПостгреСКЛ монтиран и конфигурисан на вашем систему пре него што наставите са илустрацијама у овом водичу. Отворите љуску командне линије ПостгреСКЛ са радне површине. Додајте име сервера на којем желите да радите, у супротном оставите подразумевано. Напишите име базе података која се налази на вашем серверу на којем желите да радите. Ако не желите да га промените, оставите га као подразумевано. Користићемо тестну базу података, зато смо је додали. Такође можете радити на подразумеваном порту 5432, али га можете и променити. На крају морате дати корисничко име за базу података коју одаберете. Оставите га на подразумевано ако не желите да га промените. Унесите лозинку за изабрано корисничко име и притисните Ентер са тастатуре да бисте почели да користите командну љуску.







Коришћење СЕРИАЛ кључне речи као типа података:

Када правимо табелу, обично не додајемо кључну реч СЕРИАЛ у поље примарне колоне. То значи да морамо додати вредности у колону примарног кључа док користимо израз ИНСЕРТ. Али када користимо кључну реч СЕРИАЛ у свом упиту при креирању табеле, не бисмо требали да додајемо вредности примарне колоне приликом уметања вредности. Хајде да бацимо поглед на то.

Пример 01:

Креирајте табелу Тест са две колоне ид и име. ИД колоне је дефинисан као колона примарног кључа јер је њен тип података СЕРИАЛ. С друге стране, назив колоне је дефинисан као тип података ТЕКСТ НОТ НУЛЛ. Испробајте наредбу испод да бисте креирали табелу и табела ће бити креирана ефикасно као што се види на доњој слици.



>>ЦРЕАТЕ ТАБЛЕ Тест( идСЕРИЈСКИ ПРИМАРНИ КЉУЧ, назив ТЕКСТ НИЈЕ НУЛЛ);

Уметнимо неке вредности у назив колоне новонастале табеле ТЕСТ. ИД -у колоне нећемо додати никакву вредност. Можете видети да су вредности успешно уметнуте помоћу команде ИНСЕРТ како је доле наведено.

>>ИНСЕРТ ИНТО Тест(име)ВРЕДНОСТИ(„Акса“),('Римша'),('Кхан');

Време је да проверите записе у табели „Тест“. Испробајте доње инструкције СЕЛЕЦТ у командној љусци.

>>СЕЛЕЦТ*ИЗ Теста;

Из доњег приказа можете приметити да ид колоне аутоматски има неке вредности у себи иако нисмо додали никакве вредности из команде ИНСЕРТ због типа података СЕРИАЛ који смо навели за ид колоне. Овако тип података СЕРИАЛ ради сам.

Пример 02:

Други начин да проверите вредност колоне типа СЕРИАЛ података је коришћењем кључне речи РЕТУРНИНГ у команди ИНСЕРТ. Доња декларација ствара нови ред у тест табели и даје вредност за поље ид:

>>ИНСЕРТ ИНТО Тест(име)ВРЕДНОСТИ('Хассам')ПОВРАТАКид;

Провером записа табеле Тест помоћу упита СЕЛЕЦТ добили смо доњи излаз који је приказан на слици. Пети запис је ефикасно додат у табелу.

>>СЕЛЕЦТ*ИЗ Теста;

Пример 03:

Алтернативна верзија горњег упита за уметање користи кључну реч ДЕФАУЛТ. Користићемо име ид колоне у команди ИНСЕРТ, ау одељку ВАЛУЕС даћемо му кључну реч ДЕФАУЛТ као вредност. Упит у наставку ће исто радити након извршења.

>>ИНСЕРТ ИНТО Тест(ид, име)ВРЕДНОСТИ(ДЕФАУЛТ, „Трка“);

Проверимо табелу поново помоћу упита СЕЛЕЦТ на следећи начин:

>>СЕЛЕЦТ*ИЗ Теста;

Из доњег приказа можете видети да је нова вредност додата док је ид колоне подразумевано повећан.

Пример 04:

Редни број поља колоне СЕРИАЛ може се пронаћи у табели у ПостгреСКЛ -у. За то се користи метода пг_гет_сериал_секуенце (). Морамо да користимо функцију цуррвал () заједно са методом пг_гет_сериал_секуенце (). У овом упиту ћемо дати параметре функције пг_гет_сериал_секуенце () назив табеле и њен назив СЕРИАЛ колоне. Као што видите, навели смо Тест табеле и ИД колоне. Ова метода се користи у следећем примеру упита:

>>СЕЛЕЦТ цуррвал(пг_гет_сериал_секуенце('Тест', 'ид'));

Вреди напоменути да нам функција цуррвал () помаже да извучемо најновију вредност секвенце, која је 5. Доња слика је илустрација како би перформанса могла изгледати.

Закључак:

У овом водичу смо показали како се користи псеудо-тип СЕРИАЛ за аутоматско повећање у ПостгреСКЛ-у. Користећи низ у ПостгреСКЛ-у, једноставно је изградити скуп бројева који се аутоматски увећава. Надајмо се да ћете моћи да примените поље СЕРИАЛ на описе табеле користећи наше илустрације као референцу.