sql >> Databasteknik >  >> RDS >> Mysql

@Column(unique=true) verkar inte fungera

unique=true element i Column anteckning och/eller UniqueConstraint anteckningar som kan användas på tabellnivå används för att specificera att en unik begränsning ska inkluderas i den genererade DDL .

Med andra ord, de gör ingenting under körningen, verifieringen lämnas till databasen (vilket är vettigt då unicity inte kan testas på Java-nivå på ett tillförlitligt sätt) och om du av någon anledning inte har motsvarande begränsning(ar) definierade på databasnivå kommer ingenting att hända.

Lägg till begränsningen manuellt:

ALTER TABLE Customer ADD CONSTRAINT customer_name_unq UNIQUE (name);

Se även

Såvida du inte skaffar ett tabelllås (ouch!), kan du inte söka efter unicity med en SQL-fråga i en samtidig miljö.



  1. Hur man returnerar dubblettnycklar från ett JSON-dokument i SQL Server

  2. hur man trimmar inledande nollor från alfanumerisk text i mysql-funktionen

  3. MYSQL TINYBLOB vs LONGBLOB

  4. Grunderna för PostgreSQL Schema Management