„SAP HANA“ pamoka: sukurkite seką

Anonim

Kas yra seka?

Seka yra duomenų bazės objektas, kuris automatiškai sukuria padidintą skaitinių verčių sąrašą pagal taisyklę, kaip nurodyta sekos specifikacijoje.

Pavyzdžiui, norėdami automatiškai įterpti darbuotojo numerį į lentelės stulpelį (EMPLOYEE_NO), kai į lentelę įterpiamas naujas įrašas, tada mes naudojame seką.

Sekos vertės generuojamos didėjimo arba mažėjimo tvarka.

Sekos nėra susietos su lentelėmis; juos naudoja programa. Yra dvi eilės vertės -

  • CURRVAL - pateikite dabartinę sekos vertę.
  • NEXTVAL - pateikite sekančios sekos vertę.

Sintaksė

SUKURTI SEKSN <
 [
] [NUSTATYTI PAGAL ]

Sintaksės elementai

ELEMENTAI APIBŪDINIMAS
Tai sekos pavadinimas.
[ ] Jame nurodomas vienas ar daugiau sekos parametrų.
PRADĖKITE Jis apibūdina pradinės sekos vertę.
ĮSKAIČIAVIMAS Tai nurodo vertę, kuri turi būti padidinta nuo paskutinės priskirtos vertės kiekvienam kartui, kai sugeneruojama nauja sekos vertė. Numatytasis nustatymas yra 1.
MAXVALUE Tai nurodo didžiausią vertę, kurią gali sukurti seka. gali būti nuo -4611686018427387903 iki 4611686018427387902.
NĖRA MAXVALUE Kai nurodoma NO MAXVALUE, didėjančiai sekai didžiausia vertė bus 4611686018427387903, o mažiausia mažėjančios sekos vertė bus -1.
MINVALUE / NO MINVALUE Jis nurodo mažiausią vertę, kurią gali sukurti seka. gali būti tarp -4611686018427387904 ir 4611686018427387902. Kai naudojama NO MINVALUE, minimali kylančios sekos vertė yra 1
CIKLAS CYCLE direktyva nurodo, kad sekos numeris bus paleistas iš naujo, kai jis pasieks didžiausią ar mažiausią vertę.
NĖRA CIKLO Numatytoji parinktis. NĖRA CYCLE direktyvos nenurodo, kad sekos numeris nebus paleistas iš naujo, kai jis pasieks didžiausią ar mažiausią vertę.
Talpykla / Talpyklos dydis nurodo, kuris sekos numerių diapazonas bus laikomas talpykloje. turi būti nepasirašytas sveikasis skaičius.
NĖRA ATMINTINĖS Numatytoji parinktis. „NO Cache“ direktyvoje nenurodyta, kad sekos numeris nebus išsaugotas mazge.
ATSTATYTI PAGAL Nurodoma, kad perkraunant duomenų bazę, duomenų bazė automatiškai vykdo , o sekos reikšmė yra paleista iš naujo su grąžinama verte.

Pavyzdys -

Sukursime seką pavadinimu DHK_SCHEMA.EMP_NO, kuri kiekvieną kartą sukurs padidintą sekos vertę +1, kai bus naudojama seka.

Sekos scenarijus -

SUKURTI SEKTĄ DHK_SCHEMA.EMP_NO PRADĖTI 100 PRIEDŲ 1. 

Čia mes naudosime objekto „seka“ toliau pateiktame pavyzdyje, kad padidintume darbuotojo Nr vertę +1 kaskart, kai bus vykdoma pasirinkta užklausa. Užklausoje „nextval“ gali būti naudojamas generuojant serijos numerį ar tokio paties tipo reikalavimus.

Sekos naudojimas -

PASIRINKITE DHK_SCHEMA.EMP_NO.nextval FROM DUMMY;

REZULTATAS - 100 101 102

... Taigi atlikdami kiekvieną aukščiau nurodytą užklausą.