Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Spring Boot with Hibernate:Automatyczne generowanie schematu bazy danych z kolumnami, które mogą pomieścić ułamki sekund

MySql57Dialect (i/lub MySql57InnoDbDialect , w zależności od wersji Hibernate), TIMESTAMP Typ SQL jest już zmapowany na TIMESTAMP(6) typ kolumny bazy danych:

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

Oznacza to, że domyślna definicja kolumny powinna obsługiwać precyzję w mikrosekundach. Najlepszym sposobem działania jest pozwolenie Hibernate na generowanie schematu bez nadpisywania definicji kolumny. W przypadku większości innych baz danych obniży się z wdziękiem do prostego TIMESTAMP .

Jeśli chcesz w przyszłości przełączyć się na inną bazę danych, która również obsługuje precyzję mikrosekundową, wyszukaj odpowiedni Dialect; prawdopodobnie będzie obejmować obsługę tej funkcji, a jeśli nie, zawsze możesz ją dostosować.

Dzieje się tak, ponieważ w registerColumnType wywołanie powyżej, precyzja TIMESTAMP jest ustalona na 6. Jeśli chcesz mieć możliwość jego dostosowania, włącz własny niestandardowy dialekt (rozwijający się od MySql57Dialect ) i zastąp definicję:

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

Będziesz wtedy mógł nadpisać długość kolumny za pomocą length , precision lub scale (w zależności od tego, co umieścisz w nawiasach). Zauważ, że drugi argument metody definiuje maksymalną możliwą długość kolumny dla tego konkretnego typu danych, więc jeśli chcesz np. precyzja nanosekundowa, należy ją zmienić na 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. Wypełnianie pola kombi danymi mysql

  2. CodeIgniter przełączający sterownik z mysql --> mysqli

  3. Jak stworzyć zagnieżdżone menu z MySQL za pomocą PHP?

  4. Zmień i zresetuj hasło roota MySQL

  5. Kiedy i dlaczego używać mysqli_fetch_row, mysqli_fetch_object, mysqli_fetch_assoc, mysqli_fetch_array