Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bisakah saya mendapatkan TIMESTAMP unik untuk setiap catatan di MySQL?

Suatu hari nanti (5.6.4), MySQL akan menyediakan fraksional detik di kolom TIMESTAMP, bagaimanapun, bahkan pecahan detik tidak dijamin unik, meskipun secara teoritis, mereka paling sering unik, terutama jika Anda membatasi MySQL ke satu utas.

Anda dapat menggunakan UUID jika Anda membutuhkan nomor unik yang dipesan sementara.

SELECT UUID() menghasilkan sesuatu seperti:

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

Dan beberapa waktu kemudian:

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

Tiga bagian pertama dari UUID terdiri dari waktu, namun urutannya dari presisi tertinggi hingga terkecil, jadi Anda harus membalik tiga bagian pertama menggunakan SUBSTR() dan CONCAT() seperti ini:

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

Hasil:

11e1-8f00-45f9b8d6

Anda jelas tidak dapat menggunakan fungsi seperti ini sebagai nilai default, jadi Anda harus menyetelnya dalam kode, tetapi ini adalah nilai yang dipesan secara temporal dan unik yang dijamin. UUID() bekerja pada tingkat yang jauh lebih rendah daripada detik (siklus jam), jadi dijamin unik dengan setiap panggilan dan memiliki overhead yang rendah (tidak ada penguncian seperti auto_increment).

Menggunakan UUID() pada server database mungkin lebih disukai daripada menggunakan fungsi serupa, seperti microtime() PHP berfungsi pada server aplikasi karena server database Anda lebih terpusat. Anda mungkin memiliki lebih dari satu server aplikasi (web), yang dapat menghasilkan nilai bertabrakan, dan microtime() masih tidak menjamin nilai unik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - paksa untuk tidak menggunakan cache untuk menguji kecepatan kueri

  2. Bagaimana cara membuat file konfigurasi global?

  3. Kotak Dropdown Dependen CakePHP 3

  4. Gunakan Database Relasional MySQL di Ubuntu 8.04 (Hardy)

  5. Cara membuat daftar baris untuk kueri atau menampilkan 'tidak ada catatan' menggunakan satu kueri