在python脚本中使用psycopg将日期放在文件名postgres中

时间:2016-02-29 22:30:55

标签: python postgresql datetime psycopg

我正在使用python脚本(使用psycopg2)将推文发送到postgres数据库。我希望能够在Windows任务管理器中安排此脚本。我必须克服的唯一问题是能够在postgres中重命名表。可能吗?

x = datetime.date.today() - datetime.timedelta(days=1)
con = psycopg2.connect("dbname='test' user='postgres'")   

cur = con.cursor()
cur.execute("DROP TABLE IF EXISTS schemaname.%s", (x))

**更新

这个答案确实让我更进一步,现在只是抱怨数字。

Traceback (most recent call last):
File "Z:/deso-gis/scripts/test123.py", line 26, in <module>
cur.execute("DROP TABLE IF EXISTS tweets_days.%s" % x)
psycopg2.ProgrammingError: syntax error at or near ".2016"
LINE 1: DROP TABLE IF EXISTS tweets_days.2016-02-29

1 个答案:

答案 0 :(得分:1)

我相信你在线上感到恐怖

cur.execute("DROP TABLE IF EXISTS schemaname.%s", (x))

因为psycopg不会产生你想要的东西:

DROP TABLE IF EXISTS schemaname."table_name"

尝试使用

cur.execute("DROP TABLE IF EXISTS schemaname.%s" % x)

这不是那么安全,但现在表名是名字而不是SQL字符串。