2016-08-10 19 views
0

私はpostgresにテーブルを持っており、updatedAtカラムだけを取得したいと考えています。私はテーブルの列を印刷する場合、updatedAtが存在する:PostgresからupdatedATカラムを印刷できません

#!/usr/bin/python 
# -*- coding: utf-8 -*- 

import psycopg2 
import sys 
import datetime 

con = None 

try: 

    con = psycopg2.connect(database='db', user='dbuser', password='1111') 
    cur = con.cursor() 
    cur.execute('SELECT * from incidents') 

    column_names = [row[0] for row in cur.description] 

    print("Column names: %s\n" % column_names) 


except psycopg2.DatabaseError as e: 
    print('Error %s' % e) 
    sys.exit(1) 


finally: 

    if con: 
     con.close() 

結果は

Column names: ['id', 'deviceId', 'latitude', 'longitude', 'city', 'area', 'address', 'state', 'postalCode', 'country', 'canceled', 'createdAt', 'updatedAt', 'patientId'] 

あるしかし、私はそのテーブルからすべての行を選択し、唯一updatedAtの情報を取得しようとすると、それがいることを言いますこの列は存在しません。

#!/usr/bin/python 
# -*- coding: utf-8 -*- 

import psycopg2 
import sys 
import datetime 

con = None 

try: 

    con = psycopg2.connect(database='db', user='dbuser', password='1111') 
    cur = con.cursor() 
    cur.execute('SELECT updatedAt from incidents') 
    rows = cur.fetchall() 

    for row in rows: 
     print(row) 


except psycopg2.DatabaseError as e: 
    print('Error %s' % e) 
    sys.exit(1) 


finally: 

    if con: 
     con.close() 

エラーメッセージは次のとおりです。

Error column "updatedat" does not exist 
LINE 1: SELECT updatedAt from incidents 
      ^
HINT: Perhaps you meant to reference the column "incidents.updatedAt". 

私もincidents.updatedAtてみましたが、運と。

EDIT

は、このテーブルがSequelizeでのNode.jsから作成されていることを言及するのを忘れました。

答えて

2

Postgresのカラム名のデフォルトは小文字です。その列名には大文字が含まれているため、参照するには引用符で囲む必要があります。列にスペースや特殊文字が含まれている場合も同じことが言えます。このクエリは機能します:

SELECT "updatedAt" FROM incidents 
+0

hehe!驚くばかり!魅力のように働く!どうもありがとうございました!! –

関連する問題