Mysql
 sql >> база данни >  >> RDS >> Mysql

Spring Boot with Hibernate:Автоматично генерираща се схема на база данни с колони, която може да задържи части от секунди

MySql57Dialect (и/или MySql57InnoDbDialect , в зависимост от версията на Hibernate), TIMESTAMP SQL типът вече е картографиран към TIMESTAMP(6) тип колона на базата данни:

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

Това означава, че дефиницията на колоната по подразбиране трябва да поддържа микросекунда точност. Най-добрият начин на действие е да позволите на Hibernate да генерира схемата, без да отменя дефиницията на колоната. За повечето други бази данни, тя ще се деградира елегантно до обикновен TIMESTAMP .

Ако в бъдеще искате да преминете към друга база данни, която също поддържа точност до микросекунди, потърсете съответния Dialect; вероятно ще включва поддръжка за функцията, а ако не, винаги можете да я персонализирате.

Това е така, защото в registerColumnType повикване по-горе, точността на TIMESTAMP е фиксиран на 6. Ако искате да можете да го персонализирате, разгънете свой собствен персонализиран диалект (разширяващ се от MySql57Dialect ) и заменете дефиницията с:

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

След това ще можете да замените дължината на колоната, като използвате length , precision , или scale (в зависимост от това какво поставяте в скобите). Обърнете внимание, че вторият аргумент на метода дефинира максималната възможна дължина на колоната за този конкретен тип данни, така че ако искате напр. наносекунда точност, трябва да го промените на 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. АКТУАЛИЗИРАНЕ на MySQL с помощта на условие IF

  2. Изтрийте дублиращи се редове с брой по-голям от 1 в mysql

  3. Дублирана грешка при въвеждане на unicode в уникалната колона - mysql

  4. Как да използвам MySQL Found_Rows() в PHP?

  5. Смесени MySQL и Sphinx заявки