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

@Column(unique=true) изглежда не работи

unique=true елемент на Column анотация и/или UniqueConstraint анотацията, която може да се използва на ниво таблица, се използва за уточняване, че едно уникално ограничение трябва да бъде включено в генерирания DDL .

С други думи, те не правят нищо по време на изпълнение, проверката се оставя на базата данни (което има смисъл, тъй като unicity не може да бъде тестван надеждно на ниво Java) и ако по някаква причина нямате съответния ограничение(а), дефинирани на ниво база данни, нищо няма да се случи.

Добавете ограничението ръчно:

ALTER TABLE Customer ADD CONSTRAINT customer_name_unq UNIQUE (name);

Вижте също

  • Спецификация на JPA 1.0
    • 9.1.4 Анотация с уникално ограничение
    • 9.1.5 Анотация на колона
  • Документация на MySQL

Освен ако не придобиете заключване на таблицата (ооо!), не можете да проверите за еднозначност с SQL заявка в едновременна среда.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сравняване на периоди от време

  2. Изтриване, актуализиране с производни таблици?

  3. дата на централна таблица на mysql (вертикални към хоризонтални данни)

  4. Изчерпателно ръководство за това как да използвате MySQL

  5. MySQL:Разделяне на голяма таблица на дялове или отделни таблици?