Я использую пакетный файл Windows для подключения к Postgres с помощью PSQL. Я выдаю такие команды ...
SET PGPASSWORD=postgres
psql -U postgres -d postgres -c "DROP USER IF EXISTS foo;"
Это прекрасно работает для запуска одной короткой команды SQL для базы данных. Но у меня проблемы с двумя смежными вопросами
- Как продолжить одну длинную команду SQL в несколько строк, и
- Как запустить несколько команд.
Пример 1 .....
psql -U postgres -d postgres -c "CREATE DATABASE foo
WITH OWNER = bar
ENCODING = 'UTF8'
TABLESPACE = mytabspace;"
Пример 2 .....
psql -U postgres -d postgres -c "
ALTER TABLE one ALTER COLUMN X TYPE INTEGER;
ALTER TABLE two ALTER COLUMN Y TYPE INTEGER;"
Ничего из этого не будет работать, как показано, я немного погуглил и нашел несколько предложений по проделыванию этого с linux, а также экспериментировал с различными каратами, обратной косой чертой и подчеркиванием, но, похоже, не смог разделить команды через строки.
Мне известна опция -f для запуска файла, но я пытаюсь избежать этого.
Есть предложения?