Trong hướng dẫn này, chúng ta sẽ nghiên cứu chức năng MySQL
6. Bạn hẳn đã nghe nói về số nhận dạng hoặc số nhận dạng duy nhất. Các ứng dụng mở rộng từ số ghế thi của bạn đến số Thẻ Aadhar/Số SSN của bạn, v.v.Code language: SQL [Structured Query Language] [sql]
SELECT UUID[];
Giả sử bạn có một bảng người trong MySQL và bạn được giao nhiệm vụ gán cho mỗi người trong số họ một mã định danh duy nhất. Có nhiều cách bạn có thể thực hiện việc này – sử dụng thủ công các số ngẫu nhiên, lưu ý rằng giá trị không lặp lại, v.v. Tuy nhiên, MySQL giúp chúng ta dễ dàng. Nó cung cấp cho chúng ta chức năng
7Code language: SQL [Structured Query Language] [sql]
SELECT UUID[];
Hàm
7 được sử dụng để trả về Mã định danh duy nhất toàn cầu [UUID] được tạo theo RFC 4122, “Không gian tên URN mã định danh duy nhất toàn cầu [UUID]”Code language: SQL [Structured Query Language] [sql]
SELECT UUID[];
Một điểm quan trọng cần lưu ý về UUID là chúng được thiết kế sao cho chúng là duy nhất trên toàn cầu về không gian và thời gian. Hai UUID không bao giờ giống nhau ngay cả khi chức năng được chạy trên hai thiết bị khác nhau
Giá trị UUID trong MySQL là một số 128 bit được biểu thị dưới dạng một chuỗi utf8 gồm năm số thập lục phân được phân tách bằng dấu '-'. Định dạng như sau -
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeee
Chúng ta hãy xem cú pháp và một vài ví dụ về chức năng này
Cú pháp của MySQL UUID[]
Code language: SQL [Structured Query Language] [sql]
UUID[]
Ví dụ về MySQL UUID[]
Hãy để chúng tôi bắt đầu mọi thứ với một ví dụ cơ bản. Sử dụng câu lệnh
0 và hàm UUID[], chúng ta sẽ hiển thị một mã định danh duy nhất phổ quátCode language: SQL [Structured Query Language] [sql]
SELECT UUID[];
SELECT UUID[];
Code language: SQL [Structured Query Language] [sql]
Và đầu ra là -
Hiển thị hai UUID khác nhau
Bây giờ chúng ta hãy hiển thị hai UUID trong một truy vấn
Code language: SQL [Structured Query Language] [sql]
SELECT UUID[] AS ID1, UUID[] as ID2;
Và đầu ra là -
Như bạn có thể thấy, chúng tôi nhận được hai UUID khác nhau. Sự khác biệt là ở phần đầu tiên của UUID
Làm việc với bảng
Xem xét bảng 'Người' bên dưới
Hãy để chúng tôi tạo một cột có tên UID lưu trữ một mã định danh duy nhất mà chúng tôi nhận được từ hàm
6 cho mỗi bản ghi. Chúng tôi sẽ sử dụng câu lệnhCode language: SQL [Structured Query Language] [sql]
SELECT UUID[];
2 vàCode language: SQL [Structured Query Language] [sql]
SELECT UUID[];
3 cho việc nàyCode language: SQL [Structured Query Language] [sql]
SELECT UUID[];
Code language: SQL [Structured Query Language] [sql]
ALTER TABLE Persons ADD UID text; UPDATE Persons SET UID=UUID[]; SELECT * FROM Persons;
Chúng tôi tạo một UID cột của loại văn bản bằng cách sử dụng câu lệnh
2. Sau đó, chúng tôi sử dụng câu lệnhCode language: SQL [Structured Query Language] [sql]
SELECT UUID[];
3 để đặt giá trị UUID cho mỗi hàng và cuối cùng, chúng tôi sử dụng câu lệnhCode language: SQL [Structured Query Language] [sql]
SELECT UUID[];
0 để hiển thị bảng đã cập nhật. Đầu ra là -Code language: SQL [Structured Query Language] [sql]
SELECT UUID[];
Bây giờ chúng ta hãy cập nhật giá trị UID cho bản ghi có ID là 2. Truy vấn là -
0Code language: SQL [Structured Query Language] [sql]
SELECT UUID[];
Và đầu ra là -
Như bạn có thể thấy, mỗi khi chúng ta chạy hàm
6, chúng ta sẽ nhận được một UUID khácCode language: SQL [Structured Query Language] [sql]
SELECT UUID[];
Tùy chỉnh UUID
Chúng tôi đã thấy các UUID khác nhau được trả về ở trên là các ký tự có thể đọc được. Tuy nhiên, bốn dấu gạch ngang trong UUID về cơ bản là không cần thiết. Chúng tôi có khả năng sửa đổi UUID mà không ảnh hưởng đến khía cạnh “độc nhất” của nó
Đây là một cách mà chúng ta có thể làm cho UUID của mình nhỏ gọn hơn bằng cách sử dụng hàm
8. Chúng tôi sẽ cập nhật UUID của hàng với ID = 3. Truy vấn là -Code language: SQL [Structured Query Language] [sql]
SELECT UUID[];
2Code language: SQL [Structured Query Language] [sql]
SELECT UUID[];
Và đầu ra là -
Như bạn có thể thấy, chúng tôi đã làm cho UUID của mình nhỏ gọn hơn và tùy chỉnh nó mà không ảnh hưởng đến phần “độc nhất” của nó
Có một cách khác để tùy chỉnh UUID của bạn mà không thay đổi bit "duy nhất"
Tôi đã đề cập ở phần đầu rằng UUID là một số 128 bit được biểu thị dưới dạng một chuỗi utf8 gồm năm số thập lục phân
Chúng ta có thể chuyển đổi nó sang các ký hiệu khác. Trong truy vấn bên dưới, chúng tôi chuyển đổi nó thành ký hiệu base64 bằng cách sử dụng hàm
9. Chúng tôi cũng sẽ tuân theo logic trước đây của hàmCode language: SQL [Structured Query Language] [sql]
SELECT UUID[];
8 và xóa bốn dấu gạch ngang. Truy vấn là -Code language: SQL [Structured Query Language] [sql]
SELECT UUID[];
5Code language: SQL [Structured Query Language] [sql]
SELECT UUID[];
Và đầu ra là -
Sự kết luận
Tạo số nhận dạng duy nhất hoặc UUID có một loạt các ứng dụng. Hàm
7 rất quan trọng và tôi khuyến khích bạn kiểm tra các tài liệu tham khảo bên dưới để biết thêm thông tin chi tiếtCode language: SQL [Structured Query Language] [sql]
SELECT UUID[];