skip to Main Content

I am trying to execute a SELECT using psql command and Connection URIs
psql postgresql://postgres:admin@localhost:5432/newDB -c "select current_date;"

But I get this error :
psql: warning: extra command-line argument "select current_date;" ignored
I do connect to the night database but ignore the query

On the other hand, I am able to create a database using URIs
createdb --maintenance-db postgresql://postgres:admin@localhost:5432 'newDB'

I have tried the solutions described here: https://tapoueh.org/blog/2019/09/postgres-connection-strings-and-psql/
psql -Atx postgresql://taop@localhost:5432/taop -c 'select current_date'

But I got the same message.

I tried using quotes for the uri but I got the same message

PostgreSQL 14.4, compiled by Visual C++ build 1914, 64-bit

2

Answers


  1. It seems that the psql command is interpreting the -c option and the SQL query as separate arguments, causing the query to be ignored. One possible solution is to enclose the entire command (including the URI and query) in quotes, like this:

    psql "postgresql://postgres:admin@localhost:5432/newDB" -c "select current_date;"
    

    Alternatively, you could try using the -X option to force psql to ignore any subsequent command-line arguments after the URI, like this:

    psql -X "postgresql://postgres:admin@localhost:5432/newDB" -c "select current_date;"
    
    Login or Signup to reply.
  2. You seem to be using Windows. On Windows, all switch arguments (like -c something) must precede all non-switch arguments (like the naked connection string), as the Windows argument-parsing library stops processing switches once it finds a non-switch.

    So either swap the ordering of your arguments so the connection string comes last, or convert the connection string to a switch format by putting -d in front of it.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search