簡體   English   中英

如何使用 python 在 psql 數據庫中創建表?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM