Come spiegato da joop, il tuo file SQL non è coerente.
Esiste un vincolo di chiave esterna da raffle.user_id
a "user".id
, il che significa che per ogni valore in raffle.user_id
ci deve essere una riga in "user"
dove id
ha lo stesso valore.
Ora non c'è nessuna riga inserita in "user"
con un id
uguale a 1, ma lo script tenta di inserire una riga in raffle
con user_id
uguale a 1.
Ciò viola il vincolo della chiave esterna e causa un errore. Una volta che si è verificato un errore in una transazione PostgreSQL, tutto ciò che puoi fare è ROLLBACK
. Fino a quando non lo fai, tutte le istruzioni nella transazione falliranno con l'errore che osservi.
Le uniche soluzioni che hai sono correggere i dati in modo che siano coerenti o rinunciare alla coerenza rimuovendo il vincolo della chiave esterna.
Osservazione: è una cattiva idea scegliere una parola chiave SQL riservata come USER
come nome.