create table无法看到在同一execute()调用中创建的架构

时间:2018-09-20 18:29:32

标签: python amazon-redshift psycopg2

我正在尝试对Redshift数据库执行以下操作:

create schema foo;
create table foo.bar(baz integer);

...使用cursor.execute()create table语句失败,抱怨该模式不存在:

ProgrammingError: schema "foo" does not exist

当我通过客户端传递相同的SQL(甚至包装在事务中)时,它们将按预期工作。如果有问题,我将一次调用cursor.execute(),并将其传递给字符串"create schema foo;\ncreate table foo.bar(baz integer);"

当我对cursor.execute()进行两次调用时,一次调用创建模式,一次调用创建表,它也按预期方式工作。但是,这不是理想的,因为我有一个包含多个DDL语句的大文件。希望避免将其解析为单独的语句,并在每个语句上分别调用execute()

是否有更好的方法来完成我想做的事情?

0 个答案:

没有答案