Назад | Перейти на главную страницу

Какой удобный способ выполнять многострочные запросы в postgres с помощью ssh?

Скажем, мне нужно вручную написать несколько запросов в консоли, каков наиболее эффективный способ выполнения многострочных запросов, например CREATE TABLE заявления?

Я привык использовать Microsoft Management Studio, но теперь мне приходится узнавать о PostgreSQL на лету.

Следующее приведет вас к интерактивному терминалу PostgreSQL:

$ psql <your database name>

Затем введите \e (или \edit), чтобы открыть редактор (vi по умолчанию):

# \e

Напишите запрос:

select now();

Наконец, сохраните и закройте редактор (например, :wq в vi), и psql выполнит только что написанный вами запрос.

Чтобы установить другой редактор, например vim или nano, установите одну из следующих переменных среды: PSQL_EDITOR, EDITOR, VISUAL.

Для получения дополнительной информации см. https://www.postgresql.org/docs/current/app-psql.html и искать \e.

На самом деле не существует такой вещи, как «многострочный запрос» - насколько заботит PostgreSQL, все эти пробелы и новые строки бессмысленны (если они не встречаются внутри строки или мы говорим о вкладках и т. COPY заявление или несколько других специальных мест).

Запросы «на консоли» по SSH обычно выполняются с psql инструмент, который представляет собой интерактивный терминал Postgres (см. документы для получения дополнительной информации).

Вы можете пройти текстовые файлы, содержащие запросы к psql используя -f вариант.

Вы также можете передавать запросы в psql в командной строке (в кавычках, соответствующих вашей оболочке) или передать их через STDIN (стандартный поток ввода) - см. -c вариант.

Вы можете записать запрос во временный файл и выполнить его с помощью psql -f /path/to/temp/file

Очевидно, но если кто-то не знает, вы можете писать многострочные операторы прямо в приглашении psql:

psql -h localhost -p 5432 -U postgres public
public=# SELECT
public=# *
public=# FROM
public=# mytable
public=# LIMIT 1;

Обратите внимание на конечный ; символ - любая команда SQL будет выполняться только после ввода этого символа. Итак, самый простой способ - просто скопировать и вставить многострочные команды SQL с завершающим ;.