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

Spring Boot dengan Hibernate:Skema basis data yang menghasilkan otomatis dengan kolom yang dapat menampung sepersekian detik

MySql57Dialect (dan/atau MySql57InnoDbDialect , tergantung pada versi Hibernate), TIMESTAMP Jenis SQL sudah dipetakan ke TIMESTAMP(6) jenis kolom basis data:

registerColumnType( Types.TIMESTAMP, "datetime(6)" );

Ini berarti definisi kolom default harus mendukung presisi mikrodetik. Tindakan terbaik adalah membiarkan Hibernate menghasilkan skema tanpa mengesampingkan definisi kolom. Untuk sebagian besar database lain, itu akan terdegradasi dengan anggun menjadi TIMESTAMP sederhana .

Jika Anda ingin beralih ke database lain di masa mendatang yang juga mendukung presisi mikrodetik, cari Dialect yang relevan; kemungkinan akan menyertakan dukungan untuk fitur tersebut, dan jika tidak, Anda selalu dapat menyesuaikannya.

Ini karena di registerColumnType panggilan di atas, ketepatan TIMESTAMP diperbaiki pada 6. Jika Anda ingin dapat menyesuaikannya, luncurkan dialek khusus Anda sendiri (meluas dari MySql57Dialect ) dan menimpa definisi dengan:

registerColumnType(Types.TIMESTAMP, 6, "timestamp($l)"); //l for length, p for precicion, s for scale

Anda kemudian dapat mengganti panjang kolom menggunakan length , precision , atau scale (tergantung pada apa yang Anda masukkan ke dalam tanda kurung). Perhatikan bahwa argumen kedua pada metode mendefinisikan panjang kolom maksimum yang mungkin untuk tipe data khusus ini, jadi jika Anda mau, mis. presisi nanodetik, Anda harus mengubahnya menjadi 9.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa melakukan database asinkron di JavaFX

  2. ListArray Menyimpan catatan yang sama

  3. Memilih entri berdasarkan tanggal ->=SEKARANG(), MySQL

  4. PHP/MySQLi:SET lc_time_names dan DATE_FORMAT() menjadi kueri mysqli?

  5. Pengindeksan yang benar oleh Join-Where-Group Dengan memilih kueri menghindari Menggunakan sementara; Menggunakan filesort