जैसा कि जूप ने समझाया, आपकी SQL फ़ाइल असंगत है।
raffle.user_id
. से एक विदेशी कुंजी बाधा है करने के लिए "user".id
, जिसका अर्थ है कि raffle.user_id
. में प्रत्येक मान के लिए "user"
. में एक पंक्ति होनी चाहिए जहां id
एक ही मूल्य है।
अब "user"
. में कोई पंक्ति नहीं डाली गई है एक id
. के साथ 1 के बराबर, लेकिन स्क्रिप्ट raffle
. में एक पंक्ति डालने का प्रयास करती है user_id
. के साथ 1 के बराबर।
यह विदेशी कुंजी बाधा का उल्लंघन करता है एक त्रुटि का कारण बनता है। एक बार PostgreSQL लेनदेन में कोई त्रुटि हो जाने के बाद, आप केवल ROLLBACK
कर सकते हैं . जब तक आप ऐसा नहीं करते, लेन-देन के सभी विवरण आपके द्वारा देखी गई त्रुटि के साथ विफल हो जाएंगे।
आपके पास एकमात्र समाधान या तो डेटा को ठीक करना है ताकि वे सुसंगत हों या विदेशी कुंजी बाधा को हटाकर निरंतरता छोड़ दें।
टिप्पणी: आरक्षित SQL कीवर्ड जैसे USER
. चुनना एक बुरा विचार है नाम के रूप में।