sql >> Database >  >> RDS >> Mysql

@Column(unique=true) lijkt niet te werken

De unique=true element van de Column annotatie en/of de UniqueConstraint annotaties die op tabelniveau kunnen worden gebruikt, worden gebruikt om aan te geven dat een unieke beperking moet worden opgenomen in de gegenereerde DDL .

Met andere woorden, ze doen niets tijdens de runtime, de verificatie wordt overgelaten aan de database (wat logisch is omdat uniciteit niet betrouwbaar kan worden getest op Java-niveau) en als u om welke reden dan ook niet over de bijbehorende beperking(en) gedefinieerd op databaseniveau, gebeurt er niets.

Voeg de beperking handmatig toe:

ALTER TABLE Customer ADD CONSTRAINT customer_name_unq UNIQUE (name);

Zie ook

Tenzij u een tabelvergrendeling aanschaft (au!), kunt u niet op uniciteit controleren met een SQL-query in een gelijktijdige omgeving.



  1. De beste manier om een ​​SMART mySQL- en PHP-zoekmachine te bouwen?

  2. Django-databaselaag gebruiken buiten Django?

  3. MySQL Alter-tabel veroorzaakt Fout:ongeldig gebruik van NULL-waarde

  4. DBCC CLONEDATABASE gebruiken om een ​​schema en alleen statistieken te genereren van een gebruikersdatabase in SQL Server 2014 SP2