Както обясни joop, вашият SQL файл е неконсистентен.
Има ограничение за външен ключ от raffle.user_id
към "user".id
, което означава, че за всяка стойност в raffle.user_id
трябва да има ред в "user"
където id
има същата стойност.
Сега няма вмъкнат ред в "user"
с id
равно на 1, но скриптът се опитва да вмъкне ред в raffle
с user_id
равно на 1.
Това нарушава ограничението за външен ключ и причинява грешка. След като е имало грешка в PostgreSQL транзакция, всичко, което можете да направите, е ROLLBACK
. Докато не направите това, всички изрази в транзакцията ще се провалят с грешката, която наблюдавате.
Единствените решения, които имате, са или да коригирате данните, така че да са последователни, или да се откажете от последователността, като премахнете ограничението на външния ключ.
Забележка: лоша идея е да изберете запазена SQL ключова дума като USER
като име.