PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Ibernazione:il valore della chiave duplicata viola il vincolo univoco

Quando crei un bigserial colonna in Postgresql, stai effettivamente creando una sequenza . Quando hai inserito manualmente un valore ID di '1', Postgresql non ha aggiornato la sequenza per tenerne conto. Hibernate consente a Postgresql di utilizzare la sequenza per generare l'ID, ma il primo valore prodotto è '1', che si scontra. Il secondo valore va bene.

Se hai creato il problema andando dietro Hibernate e usando SQL direttamente, dovresti risolverlo allo stesso modo:usa ALTER SEQUENCE per impostare il valore successivo :

alter sequence basedesign_id_seq restart with 2;