【发布时间】:2014-12-05 20:44:54
【问题描述】:
关于 psycopg2 和范围的快速问题。考虑一个 postgresql 表:
CREATE TABLE sensor(
hostname varchar(64) NOT NULL, -- hostname of sensor
ip varchar(15) NOT NULL, -- ip of sensor
period tstzrange NOT NULL, -- valid range of sensor
EXCLUDE USING gist (hostname WITH =, period with &&)
);
下面的插入工作在哪里
sql = "insert into sensor values (%s,%s,%s);"
curs.execute(sql,(hostname,ip,'[%s,infinity]' % ts))
with hostname = socket.gethostname() ip='127.0.0.1' 并且 ts 是一个 isoformat 时间戳,即
dt.datetime.utcfromtimestamp(time.time()).isoformat()+"z"
这可行,但是除了 python 字符串格式之外,有没有更简单/更好的方法来使用 psycopg2 在 postgresql 中操作范围?
另外,在某些时候我想用类似的东西更新表格
sql = "update sensor set period.upper = %s where hostname = %s and period.upper = infinity;"
我找不到太多关于 psycopg2 支持范围的文档,或者我可能还不够努力?
【问题讨论】:
标签: python postgresql psycopg2