sql >> Databasteknik >  >> RDS >> PostgreSQL

psql-fel för att återställa pgsl-säkerhetskopia på cmd

Som joop förklarade är din SQL-fil inkonsekvent.

Det finns en främmande nyckel-begränsning från raffle.user_id till "user".id , vilket betyder att för varje värde i raffle.user_id det måste finnas en rad i "user" där id har samma värde.

Nu finns det ingen rad infogat i "user" med ett id lika med 1, men skriptet försöker infoga en rad i raffle med user_id lika med 1.

Det bryter mot begränsningen för främmande nyckel och orsakar ett fel. När det väl har uppstått ett fel i en PostgreSQL-transaktion är allt du kan göra ROLLBACK . Tills du gör det kommer alla uttalanden i transaktionen att misslyckas med det fel du observerar.

De enda lösningarna du har är antingen att fixa data så att de är konsekventa eller att ge upp konsekvens genom att ta bort den främmande nyckeln.

Anmärkning: det är en dålig idé att välja ett reserverat SQL-nyckelord som USER som namn.



  1. Hur kan jag ta bort dubbletter av rader?

  2. En bra referens för Oracle PL/SQL

  3. radera rad med ajax-funktion och php

  4. använda triggers för att säkerställa datakonsistens