sql >> Databasteknik >  >> RDS >> PostgreSQL

Samtidighetsproblem med psycopg2, Redshift och unittest

Du använder DROP med alternativet CASCADE. Så varje droppe av tabeller som har referensintegritet kommer också att ta bort den underordnade tabellen som är associerad med den överordnade tabellen.

För att felsöka om detta verkligen är vad som händer, innan du kör din kod, ta en ögonblicksbild av befintliga tabeller med deras OID (jag tror att pg_tables eller pg_relations borde ha denna information). Kör koden och kontrollera OID för felmeddelandet med ögonblicksbilden för tabellnamnet.

Edit:Det kan bero på hur planer cachelagras i PostgreSQL (så i Redshift) för funktioner. Detta är en dokumenterad bugg fram till 8.2 så du kanske vill söka efter en fix för det. Planen kommer att cachelagras enligt den första exekveringen av funktionen men för den andra exekveringen skulle några av objekten ha fått nya OID på grund av att de återskapats.http://merlinmoncure.blogspot.ie/2007/09/as-previously-stated-postgresql-8.html

http://www.postgresql.org/exampleage-id.org/mes @sqldat.com




  1. execSQL:är bindargs bättre?

  2. Strukturera Like Query i mySQL &VB.Net

  3. Topp 2 erbjudanden med summan av alla erbjudanden

  4. SQL-resultat grupperas efter månad