sql >> Database teknologi >  >> RDS >> Mysql

@Column(unique=true) ser ikke ud til at virke

unique=true element i Column annotation og/eller UniqueConstraint annotering, der kan bruges på tabelniveau, bruges til at specificere, at en unik begrænsning skal inkluderes i den genererede DDL .

Med andre ord, de gør ikke noget under kørselstiden, verifikationen overlades til databasen (hvilket giver mening, da unicity ikke kan testes på Java-niveau pålideligt), og hvis du af en eller anden grund ikke har den tilsvarende begrænsning(er) defineret på databaseniveau, vil der ikke ske noget.

Tilføj begrænsningen manuelt:

ALTER TABLE Customer ADD CONSTRAINT customer_name_unq UNIQUE (name);

Se også

Medmindre du anskaffer en tabellås (uh!), kan du ikke tjekke for unicity med en SQL-forespørgsel i et samtidig miljø.



  1. Hvad er alternativet til genereret kolonne i MySQL 5.6

  2. Langsom ydeevne af SqlDataReader

  3. Sådan fungerer FORMAT() i MariaDB

  4. Hvilken kolonnetype skal bruges til at gemme serialiserede data i en mysql db?