Печать на экран в .sql файле postgres
Похоже, это должно быть очень легко, но я не могу найти ЛЮБОЕ, как это сделать.
У меня есть файл .sql, который я создаю для обновления моего приложения, которое изменяет таблицы, вставки/обновления и т.д.
Я хочу писать на экран после завершения каждой команды.
Итак, например, если у меня есть что-то вроде:
insert into X...
Я хочу увидеть что-то вроде
Вставка в таблицу X
Готовая вставка в таблицу X
Возможно ли это в Postgres?
Ответы
Ответ 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";