GUID ของเซิร์ฟเวอร์ SQL

Guid Khxng Seirfwexr Sql



ในโพสต์นี้ เราจะเรียนรู้วิธีใช้ประเภทตัวระบุที่ไม่ซ้ำกันใน SQL Server เราจะใช้ฟังก์ชัน NEWID() และ NEWSEQUENTIALID() เพื่อสร้างค่า GUID

ประเภทตัวระบุเฉพาะของเซิร์ฟเวอร์ SQL

นี่คือค่า GUID ขนาด 16 ไบต์ที่ใช้ในคอลัมน์หรือตัวแปรภายในเครื่อง คุณสามารถสร้างค่าประเภทตัวระบุที่ไม่ซ้ำกันได้โดยใช้ฟังก์ชัน NEWID() และ NEWSEQUENTIALID()

คุณยังสามารถสร้างค่า GUID ได้ด้วยการแปลงค่าสตริงในรูปแบบ xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx โดยที่ x เป็นเลขฐานสิบหกในช่วง 0 – 9







เนื่องจาก 'ความสุ่ม' ของค่า GUID จึงรับประกันได้ว่าค่า GUID จะไม่ซ้ำกันในฐานข้อมูลหรือแม้แต่เซิร์ฟเวอร์ สิ่งนี้ทำให้เป็นประเภทข้อมูลที่ยอดเยี่ยมสำหรับการระบุค่าที่กำหนดโดยเฉพาะ



ฟังก์ชัน SQL Server NEWID()

ฟังก์ชัน NEWID() ช่วยให้เราสามารถสร้างค่าเฉพาะใหม่ของประเภทตัวระบุที่ไม่ซ้ำได้ ไวยากรณ์เป็นดังนี้:



เปลี่ยน ( )

ตัวอย่างเช่น:





ประกาศ @gid uniqueidentifier;
ตั้ง @gid = เปลี่ยน ();
เลือก @gid เป็น gid;

ข้อความข้างต้นควรส่งคืนค่า GUID เป็น:

กิด
873412E2-A926-4EAB-B99F-A1E47E727355

ฟังก์ชัน NEWSEQUENTIALID() ของเซิร์ฟเวอร์ SQL

ฟังก์ชันนี้ช่วยให้คุณสร้างค่า GUID ที่ไม่ซ้ำกันได้ตามลำดับ ทำงานโดยสร้างค่า GUID ที่มากกว่า GUID ที่สร้างไว้ก่อนหน้านี้



สิ่งนี้ทำให้มีประโยชน์ในการใช้เป็นตัวระบุแถว เนื่องจากจะสร้างค่าตามลำดับแทนที่จะกำหนดค่า GUID ถัดไปด้วยตนเองโดยใช้ฟังก์ชัน NEWID()

ไวยากรณ์ของฟังก์ชันมีดังต่อไปนี้:

ใหม่ลำดับเหตุการณ์ ( )

ใช้ GUID ของเซิร์ฟเวอร์ SQL เป็นตัวระบุแถว

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชัน newsequentialid() เป็นตัวระบุแถวสำหรับคอลัมน์ที่กำหนด

สร้างรายการตาราง (
id uniqueidentifier ไม่ใช่คีย์หลัก newsequentialid() เริ่มต้นที่เป็น null
server_name varchar (50),
server_address varchar(255) ไม่เป็นโมฆะ
compression_method varchar(100) เริ่มต้น 'ไม่มี'
size_on_disk ลอยไม่เป็นโมฆะ
size_compressed ลอย
total_records int ไม่เป็นโมฆะ
วันที่ init_date
);
แทรก
เข้าไปข้างใน
รายการ (server_name,
ที่อยู่เซิฟเวอร์,
วิธีการบีบอัด
size_on_disk,
size_compressed,
total_records,
init_date)
ค่า
('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'),
('ค้นหาแบบยืดหยุ่น','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');

ในตัวอย่างข้างต้น เราตั้งค่าคอลัมน์ ID เป็นประเภทตัวระบุที่ไม่ซ้ำกัน และค่าเริ่มต้นเป็นค่าที่สร้างโดยฟังก์ชัน newsequentialid()

ตารางผลลัพธ์จะแสดงดังนี้:

เลือก * จากรายการ;

เอาท์พุต:

แม้ว่าการใช้ค่า GUID จะให้ค่าเฉพาะที่เข้มงวด แต่การดีบักหรือเลือกค่าเฉพาะอาจทำได้ยาก

บทสรุป

ในคู่มือนี้ คุณได้เรียนรู้เกี่ยวกับประเภทตัวระบุเฉพาะใน SQL Server คุณยังได้เรียนรู้วิธีสร้างค่า GUID โดยใช้ฟังก์ชัน NEWID() และ NEWSEQUENTIALID()