繁体   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