1
我知道那裏有很多類似的問題,但我還沒有找到一個幫助我的問題。psycopg2.ProgrammingError:語法錯誤
我正在使用Python和psycopg2與PostGresql數據庫進行交互。這裏是我的代碼:
conn = psycopg2.connect(dbname=db_name, user=user_name)
conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)
cursor = conn.cursor()
add_query = 'CREATE ROLE %s WITH CREATEDB LOGIN PASSWORD \'%s\''
add_data = (user_name, password)
cursor.execute(add_query, add_data)
我不斷收到此錯誤:
psycopg2.ProgrammingError: syntax error at or near "'foo'" LINE 1: CREATE ROLE 'foo' WITH CREATEDB LOGIN PASSWORD ''bar''
我認爲這是與逃逸引號的問題,但我有斜線的每個組合和報價,我能想到的與沒有運氣。
請注意,這將使角色名稱進行大小寫摺疊。如果你想避免,你需要標識符引用它。不幸的是,psycopg2不提供'psycopg2.extensions.QuotedString'的標識引用變體,因此您必須編寫一個或只需手動加雙引號。 –
謝謝,@Clodoaldo內託。這就像一個魅力! –