tutorial postgre example commands comandos postgresql postgresql-9.1

postgresql - postgre - psql tutorial



ImpresiĆ³n a pantalla en archivo.sql postgres (3)

Probablemente hay una mejor manera de hacerlo. Pero si necesita usar vainilla SQL, intente esto:

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

Esto suena como que debería ser una cosa muy fácil de hacer, sin embargo, no puedo encontrar EN NINGÚN LUGAR cómo hacerlo.

Tengo un archivo .sql que estoy creando para una actualización de mi aplicación que altera tablas, inserciones / actualizaciones, etc.

Quiero escribir en la pantalla después de que termine cada comando.

Entonces, por ejemplo, si tengo algo como:

insert into X...

Quiero ver algo como

Empezando a insertar en la tabla X

Acabado de insertar en la mesa X

¿Es esto posible en Postgres?


Si solo estás alimentando una gran pila de SQL a psql entonces tienes un par de opciones.

Puedes ejecutar psql con --echo-all :

-a
--echo-all
Imprime todas las líneas de entrada a la salida estándar a medida que se leen. Esto es más útil para el procesamiento de scripts que el modo interactivo. Esto es equivalente a configurar la variable ECHO a all .

Sin embargo, esa y las otras opciones de "hacer eco de todo esto" (ver psql ) son probablemente demasiado ruidosas. Si solo quieres imprimir cosas manualmente, usa /echo :

/echo text [...]
Imprime los argumentos en la salida estándar, separados por un espacio y seguidos por una nueva línea. Esto puede ser útil para intercalar información en la salida de scripts.

Así que puedes decir:

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


Vía: https://.com/a/18828523/2014857

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

Dependiendo de lo que estés haciendo, me preocuparía hacer un montón de bloques de código anónimos. Podría considerar almacenar lo anterior como una función y pasar el valor que desee que se registre.