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

Tôi có thể nhận được TIMESTAMP duy nhất cho mọi bản ghi trong MySQL không

Một ngày nào đó sớm (5.6.4), MySQL sẽ cung cấp phân số giây trong các cột TIMESTAMP, tuy nhiên, ngay cả giây phân số cũng không được đảm bảo là duy nhất, mặc dù về mặt lý thuyết, chúng thường là duy nhất, đặc biệt nếu bạn giới hạn MySQL trong một luồng duy nhất.

Bạn có thể sử dụng UUID nếu bạn cần một số duy nhất được sắp xếp tạm thời.

SELECT UUID() mang lại một cái gì đó như:

45f9b8d6-8f00-11e1-8920-842b2b55ce56

Và một thời gian sau:

004b721a-8f01-11e1-8920-842b2b55ce56

Tuy nhiên, ba phần đầu tiên của UUID bao gồm thời gian, chúng theo thứ tự từ độ chính xác cao nhất đến tối thiểu, vì vậy bạn cần phải đảo ngược ba phần đầu tiên bằng cách sử dụng SUBSTR()CONCAT() như thế này:

SELECT CONCAT(SUBSTR(UUID(), 15, 4), '-', SUBSTR(UUID(), 10, 4),
  '-', SUBSTR(UUID(), 1, 8))

Lợi nhuận:

11e1-8f00-45f9b8d6

Rõ ràng là bạn không thể sử dụng một hàm như thế này làm giá trị mặc định, vì vậy bạn phải đặt nó trong mã, nhưng đó là một giá trị được sắp xếp theo thứ tự tạm thời duy nhất được đảm bảo. UUID () hoạt động ở mức thấp hơn nhiều so với giây (chu kỳ đồng hồ), vì vậy nó được đảm bảo là duy nhất với mỗi cuộc gọi và có chi phí thấp (không bị khóa như auto_increment).

Sử dụng UUID () trên máy chủ cơ sở dữ liệu có thể được ưu tiên hơn sử dụng một hàm tương tự, chẳng hạn như microtime() của PHP hoạt động trên máy chủ ứng dụng vì máy chủ cơ sở dữ liệu của bạn tập trung hơn. Bạn có thể có nhiều hơn một máy chủ ứng dụng (web), máy chủ này có thể tạo ra các giá trị xung đột và microtime () vẫn không đảm bảo các giá trị duy nhất.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cập nhật đơn hàng Woocommerce có lập trình

  2. Không thể tải plugin xác thực 'caching_sha2_password'

  3. MySQL Workbench có được quyền truy cập để quản trị?

  4. Nhận tất cả dữ liệu POST và gửi trong email

  5. mysql kết hợp các kết quả truy vấn cạnh nhau