PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

psql-Fehler beim Wiederherstellen der pgsl-Sicherung auf cmd

Wie joop erklärt hat, ist Ihre SQL-Datei inkonsistent.

Es gibt eine Fremdschlüsseleinschränkung von raffle.user_id zu "user".id , was bedeutet, dass für jeden Wert in raffle.user_id "user" muss eine Zeile enthalten wobei id hat denselben Wert.

Jetzt ist keine Zeile in "user" eingefügt mit einer id gleich 1, aber das Skript versucht, eine Zeile in raffle einzufügen mit user_id gleich 1.

Das verletzt die Fremdschlüsseleinschränkung und verursacht einen Fehler. Sobald in einer PostgreSQL-Transaktion ein Fehler aufgetreten ist, können Sie nur ROLLBACK tun . Bis Sie dies tun, schlagen alle Anweisungen in der Transaktion mit dem von Ihnen beobachteten Fehler fehl.

Die einzigen Lösungen, die Sie haben, sind entweder die Daten so zu korrigieren, dass sie konsistent sind, oder die Konsistenz aufzugeben, indem Sie die Fremdschlüsselbeschränkung entfernen.

Anmerkung: Es ist keine gute Idee, ein reserviertes SQL-Schlüsselwort wie USER zu wählen als Name.