Создать несколько таблиц одновременно - PullRequest
0 голосов
/ 24 сентября 2019

Запуск нескольких операторов CREATE TABLE в онлайн-редакторе запросов красного смещения, каждый из которых заканчивается на ';'в результате создается только одна таблица.

Я просмотрел различные сообщения о переполнении стека, когда на других платформах было создано несколько таблиц.Например, mysql здесь: SQL Создание нескольких таблиц одновременно .Тем не менее, я не смог найти пример для красного смещения, который работает.Я также пытался удалить последний ';'в результате чего была создана только первая таблица.

CREATE TABLE IF NOT EXISTS test_one (
  test_col varchar(30),
  test_two varchar(30)
);

CREATE TABLE IF NOT EXISTS test_two (
  test_col varchar(30),
  test_two varchar(30)
);

Коды ошибок отсутствуют, создается только test_two.

Ответы [ 3 ]

1 голос
/ 24 сентября 2019

Это, безусловно, работает на Redshift.Если вы используете Python и Psycopg2 для выполнения этих запросов, убедитесь, что после каждого запроса есть точка с запятой ; и что нет диких точек с запятой, потому что вы получите, как это будет пустой запрос,

Также проследите, чтобы вы commit установили соединение после выполнения запросов.Если вы используете клиент SQL, такой как DBeaver / PgAdmin, включите автоматическую фиксацию или ручную фиксацию после выполнения этих запросов.

Редактировать

Когда вы используетередактор запросов консоли Redshift, он выполняет только один запрос (последний запрос) за раз, будь то запросы DDL или DML.Таким образом, на данный момент невозможно СОЗДАТЬ несколько таблиц или вставить данные в несколько таблиц.Для этого можно использовать клиент SQL.

1 голос
/ 24 сентября 2019

Redshift онлайн-редактор запросов не поддерживает несколько запросов.Вы должны выбрать отдельный запрос для выполнения.Для выполнения нескольких запросов лучше использовать psql или такие инструменты, как Aginity for Redshift.

0 голосов
/ 24 сентября 2019

Вы не упомянули, какой инструмент вы используете, следовательно, предполагая psql командную строку.

В my.sql у меня есть только copied и pasted вопрос sql.Если вы выполните следующий запрос, он без проблем создаст два примера таблицы.

psql -h example-url.redshift.amazonaws.com -U user -d example_db -p 5439 -f /home/your/path/to/sql/file/my.sql

Вывод

CREATE TABLE
CREATE TABLE

Надеюсь, это поможет, обновите вопрос, если вам нужна дополнительная информация.

...