如何读取psycopg2上的只读状态?

时间:2016-06-02 19:45:59

标签: python postgresql psycopg2

psycopg2上,我可以将连接置于只读模式:

connection.set_session(readonly=True)

但我怎么知道连接是否处于只读模式?

2 个答案:

答案 0 :(得分:1)

从psycopg2 v2.7开始,您可以使用enter image description here属性来确定连接是处于只读模式(True)还是读/写模式(False

如果您正在运行早期版本,则可以执行查询:

SHOW transaction_read_only;

对于只读模式,其值为'on',对于读/写模式,其值为'off'

答案 1 :(得分:-1)

试一试:

conn.set_session(readonly=True)
try:
    cursor.execute('create table xyz (a int)')
    cursor.execute('drop table xyz')
except psycopg2.InternalError, e:
    print e.message

输出:

cannot execute CREATE TABLE in a read-only transaction