CREATE SEQUENCE
CREATE SEQUENCE â ÑоздаÑÑ Ð³ÐµÐ½ÐµÑаÑÐ¾Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑи
СинÑакÑиÑ
CREATE [ TEMPORARY | TEMP ] SEQUENCE [ IF NOT EXISTS ]имÑ[ ASÑип_даннÑÑ] [ INCREMENT [ BY ]Ñаг] [ MINVALUEмин_знаÑение| NO MINVALUE ] [ MAXVALUEмакÑ_знаÑение| NO MAXVALUE ] [ START [ WITH ]наÑало] [ CACHEкеÑ] [ [ NO ] CYCLE ] [ OWNED BY {имÑ_ÑаблиÑÑ.имÑ_ÑÑолбÑа| NONE } ]
ÐпиÑание
CREATE SEQUENCE ÑоздаÑÑ Ð³ÐµÐ½ÐµÑаÑÐ¾Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑи. ÐÑа опеÑаÑÐ¸Ñ Ð²ÐºÐ»ÑÑÐ°ÐµÑ Ñоздание и иниÑиализаÑÐ¸Ñ ÑпеÑиалÑной ÑаблиÑÑ Ð¸Ð¼Ñ, ÑодеÑжаÑей Ð¾Ð´Ð½Ñ ÑÑÑокÑ. ÐладелÑÑем генеÑаÑоÑа бÑÐ´ÐµÑ Ð¿Ð¾Ð»ÑзоваÑелÑ, вÑполнÑÑÑий ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ.
ÐÑли Ñказано Ð¸Ð¼Ñ ÑÑ ÐµÐ¼Ñ, поÑледоваÑелÑноÑÑÑ ÑоздаÑÑÑÑ Ð² заданной ÑÑ ÐµÐ¼Ðµ, в пÑоÑивном ÑлÑÑае â в ÑекÑÑей. ÐÑеменнÑе поÑледоваÑелÑноÑÑи ÑÑÑеÑÑвÑÑÑ Ð² ÑпеÑиалÑной ÑÑ ÐµÐ¼Ðµ, Ñак ÑÑо пÑи Ñоздании ÑÐ°ÐºÐ¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑей Ð¸Ð¼Ñ ÑÑ ÐµÐ¼Ñ Ð·Ð°Ð´Ð°ÑÑ Ð½ÐµÐ»ÑзÑ. ÐÐ¼Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑи должно оÑлиÑаÑÑÑÑ Ð¾Ñ Ð¸Ð¼Ñн дÑÑÐ³Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑей, ÑаблиÑ, индекÑов, пÑедÑÑавлений или ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑаблиÑ, Ñже ÑÑÑеÑÑвÑÑÑÐ¸Ñ Ð² ÑÑой ÑÑ ÐµÐ¼Ðµ.
ÐоÑле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑи ÑабоÑаÑÑ Ñ Ð½ÐµÐ¹ можно, вÑзÑÐ²Ð°Ñ ÑÑнкÑии nextval, currval и setval. ÐÑи ÑÑнкÑии докÑменÑиÑÐ¾Ð²Ð°Ð½Ñ Ð² Разделе 9.17.
ХоÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно измениÑÑ Ð·Ð½Ð°Ñение поÑледоваÑелÑноÑÑи нелÑзÑ, полÑÑиÑÑ ÐµÑ Ð¿Ð°ÑамеÑÑÑ Ð¸ ÑекÑÑее ÑоÑÑоÑние можно Ñаким запÑоÑом:
SELECT * FROM name; Ð ÑаÑÑноÑÑи, поле last_value поÑледоваÑелÑноÑÑи бÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð¿Ð¾Ñледнее знаÑение, вÑделенное Ð´Ð»Ñ ÐºÐ°ÐºÐ¾Ð³Ð¾-либо ÑеанÑа. (ÐонеÑно, ко вÑемени вÑвода ÑÑо знаÑение Ð¼Ð¾Ð¶ÐµÑ ÑÑаÑÑ Ð½ÐµÐ°ÐºÑÑалÑнÑм, еÑли дÑÑгие ÑеанÑÑ Ð°ÐºÑивно вÑзÑваÑÑ nextval.)
ÐаÑамеÑÑÑ
TEMPORARYилиTEMPÐÑли Ñказано, обÑÐµÐºÑ Ð¿Ð¾ÑледоваÑелÑноÑÑи ÑоздаÑÑÑÑ ÑолÑко Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ ÑеанÑа и авÑомаÑиÑеÑки ÑдалÑеÑÑÑ Ð¿Ñи завеÑÑении ÑеанÑа. СÑÑеÑÑвÑÑÑÐ°Ñ Ð¿Ð¾ÑÑоÑÐ½Ð½Ð°Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑÑ Ñ Ñем же именем не бÑдÑÑ Ð²Ð¸Ð´Ð½Ð° (в ÑÑом ÑеанÑе), пока ÑÑÑеÑÑвÑÐµÑ Ð²ÑеменнаÑ, однако к ней можно обÑаÑиÑÑÑÑ, дополнив Ð¸Ð¼Ñ Ñказанием ÑÑ ÐµÐ¼Ñ.
IF NOT EXISTSÐе ÑÑиÑаÑÑ Ð¾Ñибкой, еÑли оÑноÑение Ñ Ñаким именем Ñже ÑÑÑеÑÑвÑеÑ. Ð ÑÑом ÑлÑÑае бÑÐ´ÐµÑ Ð²Ñдано замеÑание. ÐамеÑÑÑе, ÑÑо Ð½ÐµÑ Ð½Ð¸ÐºÐ°ÐºÐ¾Ð¹ гаÑанÑии, ÑÑо ÑÑÑеÑÑвÑÑÑее оÑноÑение как-Ñо ÑооÑноÑиÑÑÑ Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑÑÑ, коÑоÑÐ°Ñ Ð¼Ð¾Ð³Ð»Ð° Ð±Ñ Ð±ÑÑÑ Ñоздана â ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð´Ð°Ð¶Ðµ не поÑледоваÑелÑноÑÑÑ.
имÑÐÐ¼Ñ Ñоздаваемой поÑледоваÑелÑноÑÑи (возможно, дополненное ÑÑ ÐµÐ¼Ð¾Ð¹).
Ñип_даннÑÑÐеобÑзаÑелÑное пÑедложение
ASзадаÑÑ Ñип даннÑÑ Ð´Ð»Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑи. ÐопÑÑÑимÑе ÑипÑ:Ñип_даннÑÑsmallint,integerиbigint. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑÑанавливаеÑÑÑ Ñипbigint. ÐÑ Ñипа даннÑÑ Ð·Ð°Ð²Ð¸ÑÑÑ Ð¿ÑинимаемÑе по ÑмолÑÐ°Ð½Ð¸Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»Ñное и макÑималÑное знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑи.ÑагÐеобÑзаÑелÑное пÑедложение
INCREMENT BYопÑеделÑеÑ, какое ÑиÑло бÑÐ´ÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑÑÑÑ Ðº ÑекÑÑÐµÐ¼Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑи Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ знаÑениÑ. С положиÑелÑнÑм Ñагом поÑледоваÑелÑноÑÑÑ Ð±ÑÐ´ÐµÑ Ð²Ð¾Ð·ÑаÑÑаÑÑей, а Ñ Ð¾ÑÑиÑаÑелÑнÑм â ÑбÑваÑÑей. ÐнаÑение по ÑмолÑаниÑ: 1.Ñагмин_знаÑениеNO MINVALUEÐеобÑзаÑелÑное пÑедложение
MINVALUEопÑеделÑÐµÑ Ð½Ð°Ð¸Ð¼ÐµÐ½ÑÑее ÑиÑло, коÑоÑое бÑÐ´ÐµÑ Ð³ÐµÐ½ÐµÑиÑоваÑÑ Ð¿Ð¾ÑледоваÑелÑноÑÑÑ. ÐÑли ÑÑо пÑедложение опÑÑено либо Ñказаномин_знаÑениеNO MINVALUE, иÑполÑзÑеÑÑÑ Ð·Ð½Ð°Ñение по ÑмолÑаниÑ: 1 Ð´Ð»Ñ Ð²Ð¾Ð·ÑаÑÑаÑÑей поÑледоваÑелÑноÑÑи или минималÑное знаÑение Ñипа даннÑÑ â Ð´Ð»Ñ ÑбÑваÑÑей.макÑ_знаÑениеNO MAXVALUEÐеобÑзаÑелÑное пÑедложение
MAXVALUEопÑеделÑÐµÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÑÑее ÑиÑло, коÑоÑое бÑÐ´ÐµÑ Ð³ÐµÐ½ÐµÑиÑоваÑÑ Ð¿Ð¾ÑледоваÑелÑноÑÑÑ. ÐÑли ÑÑо пÑедложение опÑÑено либо ÑказаномакÑ_знаÑениеNO MAXVALUE, иÑполÑзÑеÑÑÑ Ð·Ð½Ð°Ñение по ÑмолÑаниÑ: макÑималÑное знаÑение Ñипа даннÑÑ Ð´Ð»Ñ Ð²Ð¾Ð·ÑаÑÑаÑÑей поÑледоваÑелÑноÑÑи или -1 â Ð´Ð»Ñ ÑбÑваÑÑей.наÑалоÐеобÑзаÑелÑное пÑедложение
START WITHпозволÑÐµÑ Ð·Ð°Ð¿ÑÑÑиÑÑ Ð¿Ð¾ÑледоваÑелÑноÑÑÑ Ñ Ð»Ñбого знаÑениÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð½Ð°Ñалом ÑÑиÑаеÑÑÑнаÑаломин_знаÑÐµÐ½Ð¸ÐµÐ´Ð»Ñ Ð²Ð¾Ð·ÑаÑÑаÑÑÐ¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑей имакÑ_знаÑÐµÐ½Ð¸ÐµÐ´Ð»Ñ ÑбÑваÑÑÐ¸Ñ .кеÑÐеобÑзаÑелÑное пÑедложение
CACHEопÑеделÑеÑ, ÑколÑко ÑиÑел поÑледоваÑелÑноÑÑи бÑÐ´ÐµÑ Ð²ÑделÑÑÑÑÑ Ð¸ ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð² памÑÑи Ð´Ð»Ñ ÑÑкоÑÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑÑпа к ним. ÐинималÑное знаÑение Ñавно 1 (за один Ñаз генеÑиÑÑеÑÑÑ ÑолÑко одно знаÑение, Ñ. е. кеÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÑ), и оно же пÑедполагаеÑÑÑ Ð¿Ð¾ ÑмолÑаниÑ.кеÑCYCLENO CYCLEÐаÑамеÑÑ
CYCLEпозволÑÐµÑ Ð·Ð°ÑиклиÑÑ Ð¿Ð¾ÑледоваÑелÑноÑÑÑ Ð¿Ñи доÑÑижениимакÑ_знаÑениÑилимин_знаÑениÑÐ´Ð»Ñ Ð²Ð¾Ð·ÑаÑÑаÑÑей или ÑбÑваÑÑей поÑледоваÑелÑноÑÑи, ÑооÑвеÑÑÑвенно. Ðогда ÑÑÐ¾Ñ Ð¿Ñедел доÑÑигаеÑÑÑ, ÑледÑÑÑим ÑиÑлом ÑÑÐ¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑей бÑÐ´ÐµÑ ÑооÑвеÑÑÑвенномин_знаÑениеилимакÑ_знаÑение.ÐÑли ÑказÑваеÑÑÑ
NO CYCLE, пÑи каждом вÑзовеnextvalпоÑле доÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ Ð¿ÑеделÑного знаÑÐµÐ½Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÑÑ Ð¾Ñибка. ÐÑли ÑказаниÑCYCLEиNO CYCLEоÑÑÑÑÑÑвÑÑÑ, по ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑедполагаеÑÑÑNO CYCLE.OWNED BYимÑ_ÑаблиÑÑ.имÑ_ÑÑолбÑаOWNED BY NONEÐÑедложение
OWNED BYпозволÑÐµÑ ÑвÑзаÑÑ Ð¿Ð¾ÑледоваÑелÑноÑÑÑ Ñ Ð¾Ð¿ÑеделÑннÑм ÑÑолбÑом ÑаблиÑÑ Ñак, ÑÑÐ¾Ð±Ñ Ð¿Ñи Ñдалении ÑÑого ÑÑолбÑа (или вÑей ÑаблиÑÑ) поÑледоваÑелÑноÑÑÑ ÑдалÑлаÑÑ Ð°Ð²ÑомаÑиÑеÑки. Ð£ÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ ÑаблиÑа должна имеÑÑ Ñого же владелÑÑа и Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑÑ Ð² Ñой же ÑÑ ÐµÐ¼Ðµ, ÑÑо и поÑледоваÑелÑноÑÑÑ. ÐодÑазÑмеваемое по ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑедложениеOWNED BY NONEÑказÑваеÑ, ÑÑо ÑÐ°ÐºÐ°Ñ ÑвÑÐ·Ñ Ð½Ðµ ÑÑÑанавливаеÑÑÑ.
ÐÑимеÑаниÑ
ÐÐ»Ñ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑи пÑименÑеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° DROP SEQUENCE.
ÐоÑледоваÑелÑноÑÑи оÑÐ½Ð¾Ð²Ð°Ð½Ñ Ð½Ð° аÑиÑмеÑике bigint, Ñак ÑÑо иÑ
знаÑÐµÐ½Ð¸Ñ Ð½Ðµ могÑÑ Ð²ÑÑ
одиÑÑ Ð·Ð° диапазон воÑÑмибайÑовÑÑ
ÑелÑÑ
(-9223372036854775808 .. 9223372036854775807).
Так как вÑÐ·Ð¾Ð²Ñ nextval и setval никогда не оÑкаÑÑваÑÑÑÑ, обÑекÑÑ Ð¿Ð¾ÑледоваÑелÑноÑÑей не подÑ
одÑÑ, еÑли ÑÑебÑеÑÑÑ Ð¾Ð±ÐµÑпеÑиÑÑ Ð½ÐµÐ¿ÑеÑÑвное назнаÑение номеÑов поÑледоваÑелÑноÑÑей. ÐепÑеÑÑвное назнаÑение можно оÑганизоваÑÑ, иÑполÑзÑÑ Ð¸ÑклÑÑиÑелÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ ÑаблиÑÑ Ñо ÑÑÑÑÑиком; однако ÑÑо ÑеÑение бÑÐ´ÐµÑ Ð³Ð¾Ñаздо доÑоже, Ñем пÑименение обÑекÑов поÑледоваÑелÑноÑÑей, оÑобенно когда поÑледоваÑелÑнÑе номеÑа бÑдÑÑ Ð·Ð°ÑÑебоваÑÑÑÑ ÑÑÐ°Ð·Ñ Ð¼Ð½Ð¾Ð³Ð¸Ð¼Ð¸ ÑÑанзакÑиÑми.
ÐÑли знаÑение паÑамеÑÑа ÐºÐµÑ Ð±Ð¾Ð»ÑÑе единиÑÑ, и обÑÐµÐºÑ Ð¿Ð¾ÑледоваÑелÑноÑÑи иÑполÑзÑеÑÑÑ Ð¿Ð°ÑаллелÑно в неÑколÑкиÑ
ÑеанÑаÑ
, ÑезÑлÑÑÐ°Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ Ð½Ðµ вполне ожидаемÑм. ÐаждÑй ÑÐµÐ°Ð½Ñ Ð±ÑÐ´ÐµÑ Ð²ÑделÑÑÑ Ð¸ кеÑиÑоваÑÑ Ð½ÐµÑколÑко оÑеÑеднÑÑ
знаÑений поÑледоваÑелÑноÑÑи пÑи одном обÑаÑении к обÑекÑÑ Ð¿Ð¾ÑледоваÑелÑноÑÑи и ÑооÑвеÑÑÑвенно ÑвелиÑиваÑÑ Ð¿Ð¾Ñледнее_знаÑение ÑÑого обÑекÑа. ÐаÑем пÑи ÑледÑÑÑиÑ
кеÑ-1 вÑзоваÑ
nextval в ÑÑом ÑеанÑе бÑÐ´ÐµÑ Ð¿ÑоÑÑо возвÑаÑаÑÑ Ð·Ð°Ð³Ð¾ÑовленнÑе знаÑениÑ, не каÑаÑÑÑ Ð¾Ð±ÑекÑа поÑледоваÑелÑноÑÑи. Ð ÑезÑлÑÑаÑе, вÑе ÑиÑла, вÑделеннÑе, но не иÑполÑзованнÑе в ÑеанÑе, бÑдÑÑ Ð¿Ð¾ÑеÑÑÐ½Ñ Ð¿Ñи завеÑÑении ÑеанÑа, ÑÑо пÑиведÑÑ Ðº обÑазовании «дÑÑок» в поÑледоваÑелÑноÑÑи.
Ðолее Ñого, Ñ
оÑÑ ÑазнÑм ÑеанÑам гаÑанÑиÑованно вÑделÑÑÑÑÑ ÑазлиÑнÑе знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑи, еÑли ÑаÑÑмоÑÑеÑÑ Ð²Ñе ÑеанÑÑ Ð² Ñелом, поÑÑдок ÑÑиÑ
знаÑений Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½Ð°ÑÑÑен. ÐапÑимеÑ, пÑи знаÑении кеÑ, Ñавном 10, ÑÐµÐ°Ð½Ñ A Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°ÑезеÑвиÑоваÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ 1..10 и полÑÑиÑÑ nextval=1, заÑем ÑÐµÐ°Ð½Ñ B Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°ÑезеÑвиÑоваÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ 11..20 и полÑÑиÑÑ nextval=11 до Ñого, как в ÑеанÑе A ÑгенеÑиÑÑеÑÑÑ nextval=2. Таким обÑазом, пÑи знаÑении кеÑ, Ñавном одномÑ, можно бÑÑÑ ÑвеÑеннÑми в Ñом, ÑÑо nextval генеÑиÑÑÐµÑ Ð¿Ð¾ÑледоваÑелÑнÑе знаÑениÑ; но еÑли ÐºÐµÑ Ð±Ð¾Ð»ÑÑе одного, ÑаÑÑÑиÑÑваÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑолÑко на Ñо, ÑÑо вÑе знаÑÐµÐ½Ð¸Ñ nextval ÑазлиÑнÑ; иÑ
поÑÑдок Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½ÐµÐ¿Ð¾ÑледоваÑелÑнÑм. ÐÑоме Ñого, last_value возвÑаÑÐ°ÐµÑ Ð¿Ð¾Ñледнее заÑезеÑвиÑованное знаÑение Ð´Ð»Ñ Ð²ÑеÑ
ÑеанÑов, вне завиÑимоÑÑи Ð¾Ñ Ñого, бÑло ли оно Ñже возвÑаÑено ÑÑнкÑией nextval.
Также ÑледÑÐµÑ ÑÑиÑÑваÑÑ, ÑÑо дейÑÑвие ÑÑнкÑии setval, вÑполненной Ð´Ð»Ñ Ñакой поÑледоваÑелÑноÑÑи, пÑоÑвиÑÑÑ Ð² дÑÑгиÑ
ÑеанÑаÑ
ÑолÑко поÑле Ñого, как в ниÑ
бÑдÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ñ Ð²Ñе пÑедваÑиÑелÑно закеÑиÑованнÑе знаÑениÑ.
ÐÑимеÑÑ
Создание возÑаÑÑаÑÑей поÑледоваÑелÑноÑÑи Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ serial, Ñ Ð½Ð°ÑалÑнÑм знаÑением 101:
CREATE SEQUENCE serial START 101;
ÐолÑÑение ÑледÑÑÑего номеÑа ÑÑой поÑледоваÑелÑноÑÑи:
SELECT nextval('serial');
nextval
---------
101ÐолÑÑение ÑледÑÑÑего номеÑа ÑÑой поÑледоваÑелÑноÑÑи:
SELECT nextval('serial');
nextval
---------
102ÐÑполÑзование ÑÑой поÑледоваÑелÑноÑÑи в команде INSERT:
INSERT INTO distributors VALUES (nextval('serial'), 'nothing');Ðзменение знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑи поÑле COPY FROM:
BEGIN;
COPY distributors FROM 'input_file';
SELECT setval('serial', max(id)) FROM distributors;
END;СовмеÑÑимоÑÑÑ
Ðоманда CREATE SEQUENCE ÑооÑвеÑÑÑвÑÐµÑ ÑÑандаÑÑÑ SQL, Ñо ÑледÑÑÑими иÑклÑÑениÑми:
ÐÐ»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÑледÑÑÑего знаÑÐµÐ½Ð¸Ñ Ð¿ÑименÑеÑÑÑ ÑÑнкÑиÑ
nextval(), а не вÑÑажениеNEXT VALUE FOR, как Ñого ÑÑебÑÐµÑ ÑÑандаÑÑ.ÐÑедложение
OWNED BYÑвлÑеÑÑÑ ÑаÑÑиÑением Postgres Pro.