我正在尝试使用连接到PostgreSql的Python运行查询,使用psycopg2。我能够连接,但无法运行以"授予选择..."开头的权限的查询
我尝试执行常规的"从列限制 1 中选择 *"以查看是否建立了连接以及我是否能够进行常规查询。我尝试过"向用户授予视图选择",但不起作用。
permissions = "grant select on view_activities to username;"
try:
cur.execute(permissions)
contents = "The permissions have been run"
message = twilioCli.messages.create(body = contents, from_=twil, to = me)
except:
contents = "The permissions have failed"
message = twilioCli.messages.create(body = contents, from_=twil, to = me)
预期结果是收到一条文本消息,指出"权限已运行",指示此查询已运行且没有问题。但是,我得到第二个结果"权限失败",这表明查询未正确运行。我的理论是,postgres无法运行Python的"grant select..."。语法。
似乎您的代码的某些部分(可能未在此处添加(正在执行cursor.fetchall()
和cursor.fetchone()
,这为我提供了相同的例外psycopg2.ProgrammingError: no results to fetch
。一旦我删除了.fetchall()
或.fetchone()
,我的代码执行没有任何问题。
另外,请确保在执行GRANT
后运行connection.commit()
,否则它将被回滚。