MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Cách UUID () hoạt động trong MariaDB

Trong MariaDB, UUID() là một hàm tích hợp trả về Mã nhận dạng duy nhất toàn cầu (UUID).

UUID được tạo theo “DCE 1.1:Lệnh gọi thủ tục từ xa” (Phụ lục A) Đặc điểm kỹ thuật CAE (Môi trường ứng dụng chung) do The Open Group xuất bản vào tháng 10 năm 1997 (Số tài liệu C706).

Cú pháp

Cú pháp như sau:

UUID()

Vì vậy, không cần đối số (hoặc được chấp nhận).

Ví dụ

Dưới đây là một ví dụ để chứng minh:

SELECT UUID();

Kết quả:

+--------------------------------------+
| UUID()                               |
+--------------------------------------+
| e5aa36ee-cd8a-11eb-be04-88e9fe739f3d |
+--------------------------------------+

Nếu tôi gọi nó vào lần khác, tôi nhận được một giá trị khác:

SELECT UUID();

Kết quả:

+--------------------------------------+
| UUID()                               |
+--------------------------------------+
| f11b4702-cd8a-11eb-be04-88e9fe739f3d |
+--------------------------------------+

Giới thiệu về UUID

UUID (Số nhận dạng duy nhất toàn cầu) là một số được thiết kế để duy nhất trên toàn cầu theo không gian và thời gian. Hai cuộc gọi đến UUID() dự kiến ​​sẽ tạo ra hai giá trị khác nhau, ngay cả khi các lệnh gọi này được thực hiện trên hai máy tính riêng biệt không được kết nối với nhau.

UUID là một số 128 bit được biểu thị bằng một chuỗi utf8 gồm năm số thập lục phân trong aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee định dạng:

  • Ba số đầu tiên được tạo từ một dấu thời gian.
  • Số thứ tư duy trì tính duy nhất theo thời gian trong trường hợp giá trị dấu thời gian mất tính đơn điệu (ví dụ:do tiết kiệm ánh sáng ban ngày).
  • Số thứ năm là số nút IEEE 802 cung cấp tính duy nhất về không gian. Một số ngẫu nhiên được thay thế nếu số thứ hai không có sẵn. Trong những trường hợp như vậy, tính duy nhất về không gian không thể được đảm bảo. Phải nói rằng, một vụ va chạm phải là một sự kiện có xác suất cực kỳ thấp.

Lưu ý rằng các câu lệnh sử dụng UUID() chức năng không an toàn để sao chép dựa trên câu lệnh.

So với SYS_GUID() Chức năng

Kết quả được trả về bởi UUID() tương tự như trả về bởi SYS_GUID() , ngoại trừ SYS_GUID() không bao gồm ký hiệu gạch nối (- ) trong kết quả (trong khi, UUID() hiện).

Dưới đây là so sánh giữa hai loại:

SELECT 
    UUID(),
    SYS_GUID();

Kết quả:

+--------------------------------------+----------------------------------+
| UUID()                               | SYS_GUID()                       |
+--------------------------------------+----------------------------------+
| 9e795ffc-cd71-11eb-8f75-0800270503a7 | 9E796001CD7111EB8F750800270503A7 |
+--------------------------------------+----------------------------------+

SYS_GUID() đã được giới thiệu trong MariaDB 10.6.1 để nâng cao khả năng tương thích với Oracle.

Ngoài ra còn có một UUID_SHORT() hàm trả về một UUID ngắn dưới dạng số nguyên không dấu 64 bit.

Thông qua đối số

Như đã đề cập, UUID() không chấp nhận bất kỳ đối số nào. Đây là những gì sẽ xảy ra khi tôi chuyển một đối số:

SELECT UUID(3);

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UUID'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB JSON_TYPE () Giải thích

  2. Cách FROM_BASE64 () hoạt động trong MariaDB

  3. MariaDB SYSTEM_USER () Giải thích

  4. Cách TRUNCATE () hoạt động trong MariaDB

  5. Cách hoạt động của nhà điều hành Modulo trong MariaDB