Подтвердить что ты не робот

Печать на экран в .sql файле postgres

Похоже, это должно быть очень легко, но я не могу найти ЛЮБОЕ, как это сделать.

У меня есть файл .sql, который я создаю для обновления моего приложения, которое изменяет таблицы, вставки/обновления и т.д.

Я хочу писать на экран после завершения каждой команды.

Итак, например, если у меня есть что-то вроде:

insert into X...

Я хочу увидеть что-то вроде

Вставка в таблицу X

Готовая вставка в таблицу X

Возможно ли это в Postgres?

4b9b3361

Ответ 1

Если вы просто кормите большую кучу SQL до psql, у вас есть пара вариантов.

Вы можете запустить psql с помощью --echo-all:

-a
--echo-all
Распечатайте все входные строки на стандартный вывод, поскольку они читаются. Это более полезно для обработки script, чем интерактивных Режим. Это эквивалентно установке переменной ECHO в all.

Это и другие опции "echo all of this type" (см. руководство), вероятно, слишком шумны. Если вы просто хотите распечатать вещи вручную, используйте \echo:

\echo text [...]
Распечатывает аргументы стандартного вывода, разделенные одним пробелом и сопровождаемым новой строкой. Это может быть полезно для интерполирования информации в выводах скриптов.

Итак, вы можете сказать:

\echo 'Starting to insert into table X'
-- big pile of inserts go here...
\echo 'Finished inserting into table X'

Ответ 2

Через: fooobar.com/questions/187934/...

DO language plpgsql $$
BEGIN
  RAISE NOTICE 'hello, world!';
END
$$;

В зависимости от того, что вы делаете, я буду беспокоиться о том, чтобы сделать кучу анонимных блоков кода. Возможно, вы захотите сохранить вышеуказанное как функцию и передать любое значение, которое вы хотите зарегистрировать.

Ответ 3

Вероятно, лучший способ сделать это. Но если вам нужно использовать vanilla SQL, попробуйте следующее:

SELECT NULL AS "Starting to insert into table X";
-- big pile of inserts go here...
SELECT NULL AS "Finished inserting into table X";