Я пытаюсь выполнить следующее для базы данных 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()
индивидуально для каждого из них.
Есть ли лучший способ выполнить то, что я пытаюсь сделать?