sql >> Database >  >> RDS >> PostgreSQL

Retourneer Pandas-dataframe van PostgreSQL-query met sqlalchemy

Je wordt gebeten door de (on)gevoeligheidsproblemen met PostgreSQL. Als u de tabelnaam in de query citeert, werkt het:

df = pd.read_sql_query('select * from "Stat_Table"',con=engine)

Maar persoonlijk zou ik adviseren om altijd kleine tabelnamen (en kolomnamen) te gebruiken, ook bij het schrijven van de tabel naar de database om dergelijke problemen te voorkomen.

Uit de PostgreSQL-documenten (http:// www.postgresql.org/docs/8.0/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS ):

Om wat meer uit te leggen:je hebt een tabel geschreven met de naam Stat_Table naar de database (en sqlalchemy zal deze naam aanhalen, dus het zal worden geschreven als "Stat_Table" in de postgres-database). Bij het uitvoeren van de zoekopdracht 'select * from Stat_Table' de niet-geciteerde tabelnaam wordt geconverteerd naar kleine letters stat_table , en dus krijg je de melding dat deze tabel niet gevonden is.

Zie bijvoorbeeld ook Zijn PostgreSQL-kolomnamen hoofdlettergevoelig?



  1. Externe MySql-toegang geweigerd voor gebruiker met C#-code, maar kan verbinding maken met DbVisualizer

  2. SQL Server kiest willekeurige (of eerste) waarde met aggregatie

  3. Python- en MySQLdb-waarschuwingen

  4. Fix Msg 512 "Subquery heeft meer dan 1 waarde geretourneerd" in SQL Server