Jak vysvětlil joop, váš soubor SQL je nekonzistentní.
Existuje omezení cizího klíče z raffle.user_id
na "user".id
, což znamená, že pro každou hodnotu v raffle.user_id
v "user"
musí být řádek kde id
má stejnou hodnotu.
Nyní není v "user"
vložen žádný řádek s id
rovná 1, ale skript se pokusí vložit řádek do raffle
s user_id
rovno 1.
To poruší omezení cizího klíče a způsobí chybu. Jakmile dojde k chybě v transakci PostgreSQL, vše, co můžete udělat, je ROLLBACK
. Dokud to neuděláte, všechny příkazy v transakci selžou s chybou, kterou pozorujete.
Jediné řešení, které máte, je buď opravit data tak, aby byla konzistentní, nebo se vzdát konzistence odstraněním omezení cizího klíče.
Poznámka: je špatný nápad zvolit vyhrazené klíčové slovo SQL jako USER
jako jméno.