SQL Serveri GUID

Sql Serveri Guid



Selles postituses õpime kasutama unikaalset identifikaatori tüüpi SQL Serveris. GUID-väärtuste genereerimiseks kasutame ka funktsioone NEWID() ja NEWSEQUENTIALID().

SQL Serveri kordumatu identifikaatori tüüp

See on 16-baidine GUID väärtus, mida kasutatakse veerus või kohalikus muutujas. Unikaalse identifikaatori tüübi väärtuse saate luua funktsioonide NEWID() ja NEWSEQUENTIALID() abil.

GUID-väärtuse saate luua ka stringiväärtuse teisendamisel vormingus xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx, kus x on kuueteistkümnendnumber vahemikus 0–9.







GUID-väärtuse juhuslikkuse tõttu on garanteeritud, et GUID-väärtus võib andmebaasis või isegi serverites olla kordumatu. See on suurepärane andmetüüp antud väärtuse ainulaadseks tuvastamiseks.



SQL Server NEWID() funktsioon

Funktsioon NEWID() võimaldab meil luua kordumatu identifikaatori tüübi uue kordumatu väärtuse. Süntaks on järgmine:



MUUDA ( )

Näiteks:





deklareeri @gid unikaalne identifikaator;
set @gid = CHANGE();
vali @gid kui gid;

Ülaltoodud avaldused peaksid tagastama GUID väärtuse järgmiselt:

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

SQL Serveri funktsioon NEWSEQUENTIALID()

See funktsioon võimaldab teil genereerida kordumatuid GUID-väärtusi järjestikku. See töötab, genereerides GUID-i väärtuse, mis on suurem kui varem loodud GUID.



See muudab selle kasulikuks kasutamiseks rea identifikaatorina, kuna see genereerib väärtusi järjest, mitte ei määra käsitsi funktsiooni NEWID() abil järgmist GUID väärtust.

Funktsiooni süntaks on järgmine:

NEWSEQUENTIALID ( )

SQL Serveri GUID kasutamine reaidentifikaatorina

Järgmine näide näitab, kuidas kasutada funktsiooni newssequentialid() antud veeru reaidentifikaatorina.

loo tabelikirjed (
id unikaalne identifikaator pole null vaikimisi primaarvõti newssequentialid()
serveri_nimi varchar(50),
serveri_aadress varchar(255) ei ole null,
compression_method varchar(100) vaikimisi 'none',
size_on_disk float ei ole null,
size_compressed float,
total_records int mitte null,
init_date kuupäev
);
sisestada
sisse
ENTRIES(serveri_nimi,
serveri aadress,
compression_method,
suurus_kettal,
size_compressed,
total_records,
init_date)
väärtused
('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');

Ülaltoodud näites määrasime kordumatu identifikaatori tüübiks veeru ID ja funktsiooni newsequentialid() genereeritud väärtuseks vaikeväärtus.

Saadud tabel on järgmine:

vali kirjete hulgast *;

Väljund:

Kuigi GUID-väärtuste kasutamine võib pakkuda ranget unikaalsust, võib see olla keeruline silumisel või konkreetsete väärtuste valimisel.

Järeldus

Sellest juhendist õppisite tundma SQL Serveri kordumatu identifikaatori tüüpi. Samuti õppisite, kuidas luua GUID-väärtusi funktsioonide NEWID() ja NEWSEQUENTIALID() abil.