Som joop forklarede, er din SQL-fil inkonsekvent.
Der er en fremmednøglebegrænsning fra raffle.user_id
til "user".id
, hvilket betyder, at for hver værdi i raffle.user_id
der skal være en række i "user"
hvor id
har samme værdi.
Nu er der ingen række indsat i "user"
med et id
lig med 1, men scriptet forsøger at indsætte en række i raffle
med user_id
lig med 1.
Det overtræder begrænsningen for fremmednøgle og forårsager en fejl. Når der har været en fejl i en PostgreSQL-transaktion, er alt hvad du kan gøre ROLLBACK
. Indtil du gør det, vil alle udsagn i transaktionen mislykkes med den fejl, du observerer.
De eneste løsninger, du har, er enten at rette dataene, så de er konsistente, eller at give afkald på konsistens ved at fjerne den fremmede nøgle-begrænsning.
Bemærkning: det er en dårlig idé at vælge et reserveret SQL nøgleord som USER
som navn.