我正在尝试对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()
。
是否有更好的方法来完成我想做的事情?