sql >> Database teknologi >  >> RDS >> PostgreSQL

Tilføjelse af en bruger-/konti-tabel til Postgres i Django View

Mine penge er på et forkert stavet navn. Jeg bemærker i fejlmeddelelsen, at du har

OmniCloud_App_accounts
OmniCloud_App_user

Anden tabel bruger ental. Der er ikke et andet bord som dette tilfældigt:

OmniCloud_App_users

Brug af blandede case-id'er i PostgreSQL er også en fantastisk kilde til omdømme her på SO. Det vil bide dig før eller siden. Ofre for den dårskab er stamgæster her. Enhver tabel med dette navn måske - og du har glemt de dobbelte anførselstegn i "OmniCloud_App_user" et sted?

omnicloud_app_user

Det er enten det, eller transaktionen, der sparer brugeren, er ikke blevet forpligtet endnu. Kan du kun oprette brugeren (og ingen konti endnu) og tjekke om den ender i den rigtige database i tabellen og med det rigtige ID?

Rediger:værktøjer til at diagnosticere problemet

Hvis du ved at brugere bliver oprettet, så er spørgsmålet:er den fremmede nøglebegrænsning user_id_refs_id_468fbcec324e93d2 se det rigtige sted? Samme database? Samme skema? Samme bord?

For at finde ud af, hvilke tabeller der findes i din database, prøv følgende forespørgsel (hvis du har de nødvendige rettigheder):

SELECT n.nspname AS schema_name
      ,c.relname AS table_name
      ,c.relhastriggers
      ,c.reltuples
FROM   pg_catalog.pg_class c
LEFT   JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE  c.relname ~~* '%user%'
AND    c.relkind = 'r'
AND    nspname <> 'pg_catalog';

Viser alle tabeller i alle skemaer, der har "bruger" i navnet. Plus hvis tabellen har triggere (kunne forårsage dit problem), og hvor mange rækker der er i det (estimat opdateret af ANALYSE ). Kan give dig et spor ...

Du kan også bruge metakommandoen \d af standardkommandolinjeklienten (interaktiv terminal) psql .

Jeg ville køre en testcase og få postgres-serveren til at logge alt, hvad den får. Indstil denne parameter til det formål:

set log_statement = 'all';

Manualen om logningsparametre .

Manualen til hvordan du indstiller parametre .



  1. Hvad er forskellen mellem 'ÅÅÅÅ' og 'RRRR' i Oracle SQL

  2. Hvordan omdøber jeg hurtigt en MySQL-database (ændrer skemanavn)?

  3. Kald Oracle-lagret procedure fra Java-appen ved hjælp af dvaletilstand og c3p0-forbindelsespulje

  4. Vælg flere kolonner fra to tabeller ved hjælp af greendao