sql >> Database >  >> RDS >> PostgreSQL

Gelijktijdigheidsprobleem met psycopg2, Redshift en unittest

U gebruikt DROP met de optie CASCADE. Dus elke daling van tabellen met referentiële integriteit zal ook de onderliggende tabel verwijderen die aan de bovenliggende tabel is gekoppeld.

Om op te lossen of dit werkelijk is wat er gebeurt, moet u, voordat u uw code uitvoert, een momentopname maken van bestaande tabellen met hun OID (ik denk dat pg_tables of pg_relations deze informatie zouden moeten hebben). Voer de code uit en controleer de OID van de foutmelding met de snapshot voor de tabelnaam.

Bewerken:het kan zijn dat plannen worden gecached in PostgreSQL (dus in Redshift) voor functies. Dit is een gedocumenteerde bug tot 8.2, dus misschien wilt u er een oplossing voor zoeken. Het plan wordt in de cache opgeslagen volgens de eerste uitvoering van de functie, maar voor de tweede uitvoering zouden sommige objecten nieuwe OID's hebben gekregen omdat ze opnieuw zijn gemaakt.http://merlinmoncure.blogspot.ie/2007/09/as-previously-stated-postgresql-8.html

http://www.postgresql.org/message-id/example @sqldat.com




  1. MySQL InnoDB geeft geen schijfruimte vrij na het verwijderen van gegevensrijen uit de tabel

  2. Ontvang elk uur voor een tijdbereik

  3. Evolutie van fouttolerantie in PostgreSQL

  4. django auth Gebruiker die e-mailveld afkapt