我正在创建一个Python脚本来与Redshift上的架构权限(和相关表)进行交互。正如其他一些StackOverflow帖子中所建议的那样,我正在使用psycopg2库。
当我尝试执行一些简单的SELECT FROM
查询时,我没有遇到任何问题:我可以执行并查看没有问题的结果。
例如,当我尝试创建新架构或授予/撤消权限时出现问题。这种查询看起来不会产生任何影响。
这里我展示了一个非常简单的例子,我尝试创建一个新的模式:
conn_string = "dbname='{}' port='{}' host='{}' user='{}' password='{}'".format(DB_NAME, DB_PORT, DB_HOST, DB_USER, DB_PWD)
con = psycopg2.connect(conn_string)
sql = "CREATE SCHEMA new_schema"
cur = con.cursor()
cur.execute(sql)
但是当我查看Redshift DB时,我没有看到任何名为new_schema
的新架构。当我尝试运行某些权限grant / revoke查询时,会发生相同的行为。
谁知道发生了什么事?
您必须提交交易。
con = psycopg2.connect(conn_string)
sql = "CREATE SCHEMA new_schema"
cur = con.cursor()
cur.execute(sql)
con.commit()