TransWikia.com

Como puedo hacer una consulta a postgresql desde un .bat?

Stack Overflow en español Asked on August 27, 2021

Creé un .bat con el siguiente código:

@echo off psql -d postgres -U postgres -p 5432

exit

Hasta ahí todo bien, cuando lo abro me aparece el cmd con lo siguiente:

ADVERTENCIA: El código de página de la consola (437) difiere del código de página de Windows (1252). Los caracteres de 8 bits pueden funcionar incorrectamente. Vea la página de referencia de psql «Notes for Windows users» para obtener más detalles. Digite «help» para obtener ayuda.

postgres=#

lo que significa que se conectó satisfactoriamente con el postgresql sin pedirme el password (ya que le creé el archivo pgpass.conf en el directorio). Lo que no se a partir de ahora, y es donde está mi problema, es que no sé cómo hacer para, desde el mismo archivo .bat, realizarle un insert a una de las tablas de una de las bases de datos de postgres, por ejemplo: INSERT into prueba (nombre) values ("Fernando").

Desde el cmd puedo además de conectar con el postgresql, hacerlo también con una base de datos utilizando c (nombre de mi base de datos) y a partir de ahí ya puedo hacer un insert con éxito, pero no sé como hacer lo mismo desde el archivo .bat para que al ejecutarlo haga el insert automáticamente. De más esta decir que soy bastante nuevo en esto, les agradecería mucho su ayuda.

2 Answers

Me acaban de responder en el foro de postgres a la misma pregunta y me dieron una solución que me resultó, la escribo aquí por si alguien se encuentra con el mismo problema: aquí dejo el enlace que conduce a la solución que me dieron

    @echo off
set HOST=mi_ip
set PORT=5432
set DATABASE=mi_bd
set USERDB=mi_user
set PGPASSWORD=mi_password
cls
 
psql -h %HOST% -p %PORT% -d %DATABASE% -U %USERDB% -f mi_archivo.sql
pause
 
set HOST=
set PORT=
set DATABASE=
set USERDB=
set PGPASSWORD=

Answered by Martin on August 27, 2021

Utiliza la opcion -c 'QUERY' para ejecutar una consulta

psql -d postgres -U postgres -p 5432 -c 'INSERT into prueba ....'

Cuidando el uso de las comillas dentro de la expresion, (en este caso, dejar doble comillas encerrando la consulta)

-c "INSERT into prueba (nombre) values ('Fernando')"

Answered by F.Igor on August 27, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP