[英]Insert pandas dataframe into actian PSQL database table using python
[英]How to create a table in psql database using python?
我正在運行此腳本並希望通過使用變量在 psql 查詢中傳遞值來創建一個表。 因此,我可以在一個 go 中創建多個表。 但是這cur.execute("CREATE TABLE IF NOT EXISTS(%s, %s)",[table_name, comp_schema])
行拋出錯誤。 如何編寫此查詢以創建具有給定架構的表?
import psycopg2
conn = psycopg2.connect(database="review_check", user = "xxx", password = "xxx",)
cur = conn.cursor()
print ("Opened database successfully")
comp_schema = """
as_of_date DATE PRIMARY KEY NOT NULL,
verified_reviews INTEGER,
lsa_total_reviews INTEGER
"""
table_name = 'comp_first'
cur.execute("CREATE TABLE IF NOT EXISTS(%s, %s)",[table_name, comp_schema])
conn.commit()
conn.close()
使用psycopg2.sql
模塊動態組合查詢。 請參閱https://www.psycopg.org/docs/sql.html 。
這里有幾個錯誤,在 SQL 語法和 Python 中:
cur.execute("CREATE TABLE IF NOT EXISTS(%s, %s)",[table_name, comp_schema])
應該
cur.execute("CREATE TABLE IF NOT EXISTS %s (%s)"%(table_name, comp_schema))
在開發過程中首先在單獨的變量中構建查詢可能更容易,然后打印它以查看它是否正確:
test = "CREATE TABLE IF NOT EXISTS %s (%s)"%(table_name, comp_schema)
print(test)
>>CREATE TABLE IF NOT EXISTS comp_first (
as_of_date DATE PRIMARY KEY NOT NULL,
verified_reviews INTEGER,
lsa_total_reviews INTEGER
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.