GUID máy chủ SQL

Guid May Chu Sql



Trong bài đăng này, chúng ta sẽ tìm hiểu cách sử dụng loại định danh duy nhất trong SQL Server. Chúng tôi cũng sẽ sử dụng các hàm NEWID() và NEWSEQUENTIALID() để tạo các giá trị GUID.

Loại định danh duy nhất của máy chủ SQL

Đây là giá trị GUID 16 byte được sử dụng trong một cột hoặc một biến cục bộ. Bạn có thể tạo một giá trị loại định danh duy nhất bằng cách sử dụng các hàm NEWID() và NEWSEQUENTIALID().

Bạn cũng có thể tạo giá trị GUID bằng cách chuyển đổi một giá trị chuỗi ở định dạng xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx trong đó x là một chữ số thập lục phân trong khoảng 0 – 9.







Do tính 'ngẫu nhiên' của giá trị GUID, đảm bảo rằng giá trị GUID có thể là duy nhất trên cơ sở dữ liệu hoặc thậm chí cả máy chủ. Điều này tạo nên một kiểu dữ liệu tuyệt vời để xác định duy nhất một giá trị nhất định.



Hàm NEWID() của máy chủ SQL

Hàm NEWID() cho phép chúng ta tạo một giá trị duy nhất mới của kiểu định danh duy nhất. Cú pháp như hình:



BIẾN ĐỔI ( )

Ví dụ:





khai báo định danh duy nhất @gid;
đặt @gid = CHANGE();
chọn @gid làm gid;

Các câu lệnh trên sẽ trả về giá trị GUID là:

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

Máy chủ SQL Hàm NEWSEQUENTIALID()

Chức năng này cho phép bạn tạo tuần tự các giá trị GUID duy nhất. Nó hoạt động bằng cách tạo một giá trị GUID lớn hơn GUID đã tạo trước đó.



Điều này làm cho nó hữu ích để sử dụng làm mã định danh hàng vì nó tạo ra các giá trị theo trình tự thay vì xác định thủ công giá trị GUID tiếp theo bằng cách sử dụng hàm NEWID().

Cú pháp hàm như hình:

NEWSEQUENTIALID ( )

Sử dụng SQL Server GUID làm Mã định danh hàng

Ví dụ sau đây cho thấy cách sử dụng hàm newequentialid() làm mã định danh hàng cho một cột nhất định.

tạo các mục bảng (
id mã định danh duy nhất không null mặc định khóa chính newsequentialid(),
server_name varchar(50),
server_address varchar(255) không null,
nén_method varchar(100) mặc định 'không',
size_on_disk float không null,
size_compression float,
total_records int không null,
init_date ngày
);
chèn
vào trong
ENTRIES(server_name,
địa chỉ máy chủ,
phương pháp nén,
size_on_disk,
kích thước_đã nén,
Tổng số hồ sơ,
init_date)
giá trị
('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');

Trong ví dụ trên, chúng tôi đặt cột ID là loại định danh duy nhất và giá trị mặc định là giá trị được tạo bởi hàm newsequentialid().

Bảng kết quả như hình:

chọn * từ các mục nhập;

Đầu ra:

Mặc dù việc sử dụng các giá trị GUID có thể mang lại tính duy nhất nghiêm ngặt, nhưng có thể khó khăn khi gỡ lỗi hoặc chọn các giá trị cụ thể.

Sự kết luận

Trong hướng dẫn này, bạn đã tìm hiểu về loại định danh duy nhất trong SQL Server. Bạn cũng đã học cách tạo các giá trị GUID bằng các hàm NEWID() và NEWSEQUENTIALID().