SQL serverio GUID

Sql Serverio Guid



Šiame įraše sužinosime, kaip naudoti unikalų identifikatoriaus tipą SQL serveryje. GUID reikšmėms generuoti taip pat naudosime funkcijas NEWID() ir NEWSEQUENTIALID().

SQL serverio unikalaus identifikatoriaus tipas

Tai 16 baitų GUID reikšmė, naudojama stulpelyje arba vietiniame kintamajame. Galite sukurti unikalaus identifikatoriaus tipo reikšmę naudodami NEWID() ir NEWSEQUENTIALID() funkcijas.

Taip pat galite sugeneruoti GUID reikšmę konvertuodami eilutės reikšmę formatu xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx, kur x yra šešioliktainis skaitmuo diapazone nuo 0 iki 9.







Dėl GUID reikšmės „atsitiktiškumo“ garantuojama, kad GUID reikšmė gali būti unikali duomenų bazėje ar net serveriuose. Tai yra puikus duomenų tipas, skirtas unikaliai identifikuoti nurodytą vertę.



SQL serverio NEWID() funkcija

Funkcija NEWID() leidžia sugeneruoti naują unikalią unikalaus identifikatoriaus tipo vertę. Sintaksė yra tokia, kaip parodyta:



PAKEISTI ( )

Pavyzdžiui:





paskelbti @gid unikalų identifikatorių;
nustatyti @gid = CHANGE();
pasirinkite @gid kaip gid;

Aukščiau pateikti teiginiai turėtų grąžinti GUID reikšmę kaip:

gid
873412E2-A926-4EAB-B99F-A1E47E727355

SQL serverio NEWSEQUENTIALID() funkcija

Ši funkcija leidžia nuosekliai generuoti unikalias GUID reikšmes. Jis veikia generuodamas GUID reikšmę, kuri yra didesnė už anksčiau sugeneruotą GUID.



Dėl to jį naudinga naudoti kaip eilutės identifikatorių, nes jis generuoja reikšmes nuosekliai, o ne rankiniu būdu nustato kitą GUID reikšmę naudojant NEWID() funkciją.

Funkcijos sintaksė yra tokia, kaip parodyta:

NEWSEQUENTIALID ( )

SQL serverio GUID naudojimas kaip eilutės identifikatorius

Šiame pavyzdyje parodyta, kaip naudoti funkciją newssequentialid() kaip nurodyto stulpelio eilutės identifikatorių.

sukurti lentelės įrašus (
ID unikalus identifikatorius nėra nulis numatytasis naujienų sekos ID() pirminis raktas,
serverio_pavadinimas varchar(50),
serverio_adresas varchar(255) not null,
compression_method varchar(100) numatytasis 'nėra',
size_on_disk float not null,
size_compressed float,
total_records int ne nulis,
pradžios_datos data
);
Įdėti
į
ĮRAŠAI(serverio_pavadinimas,
serverio adresas,
suspaudimo_metodas,
dydis_disk,
size_compressed,
total_records,
pradžios_data)
vertybes
('MySQL','localhost:3306','lz77',90.66,40.04,560000,'2022-01-02'),
('Redis','localhost:6307','Snappy',3.55,998.2,100000,'2022-03-19'),
('PostgreSQL','localhost:5432','pglz',101.2,98.01,340000 ,'2022-11-11'),
('Elasticsearch','localhost:9200','lz4',333.2,300.2,1200000,'2022-10-08'),
('MongoDB', 'localhost:27017', 'Snappy', 4.55, 4.10, 620000, '2021-12-12'),
(„Apache Cassandra“, „localhost:9042“, „zstd“, 300.3, 200.12, 10000000, „2020-03-21“);

Aukščiau pateiktame pavyzdyje ID stulpelį nustatėme kaip unikalaus identifikatoriaus tipą, o numatytąją reikšmę – kaip reikšmę, kurią sugeneravo funkcija newsequentialid().

Gauta lentelė yra tokia, kaip parodyta:

pasirinkite * iš įrašų;

Išvestis:

Nors naudojant GUID reikšmes galima užtikrinti griežtą unikalumą, derinant ar pasirenkant konkrečias reikšmes gali būti sunku.

Išvada

Šiame vadove sužinojote apie unikalų identifikatoriaus tipą SQL serveryje. Taip pat sužinojote, kaip generuoti GUID reikšmes naudojant NEWID() ir NEWSEQUENTIALID() funkcijas.