sql >> Databáze >  >> RDS >> Mysql

Zdá se, že @Column(unique=true) nefunguje

unique=true prvek Column anotace a / nebo UniqueConstraint anotace, které lze použít na úrovni tabulky, se používají k určení, že do generovaného DDL má být zahrnuto jedinečné omezení .

Jinými slovy, za běhu nic nedělají, ověření je ponecháno na databázi (což dává smysl, protože jednoznačnost nelze na úrovni Java spolehlivě otestovat) a pokud z jakéhokoli důvodu nemáte odpovídající omezení definované na úrovni databáze, nic se nestane.

Přidejte omezení ručně:

ALTER TABLE Customer ADD CONSTRAINT customer_name_unq UNIQUE (name);

Viz také

Dokud si nezískáte zámek tabulky (ach!), nemůžete v souběžném prostředí kontrolovat jednoznačnost pomocí SQL dotazu.



  1. Hromadná aktualizace mysql pomocí příkazu where

  2. Udělení práv na uloženou proceduru jinému uživateli Oracle

  3. Jak omezit výsledky v T-SQL

  4. MySQL Zkrácení výsledku při použití Group_Concat a Concat