what's the escape sequence for hyphen (-) in PostgreSQL

I'm trying to rename a database to a name with a hyphen (-).

ALTER DATABASE one RENAME TO one-two;

And psql returns an error:

ERROR:  syntax error at or near "-"

What should I use as an escape sequence for "-" character or what's the way to do the above?

Note: I've tried the '\-' and didn't work as well.

Thanks.

58580 次浏览

Double quotes should do it. But you'll have to always use the quoted-identifier everywhere you reference the database.

ALTER DATABASE one RENAME TO "one-two";

psql -d -c "CREATE EXTENSION IF NOT EXISTS "'"uuid-ossp"'";"

Mix double quotes and single quotes as such:

psql --command='create database "db-name-with-dashes"'

Backticks ` is the quoted identifier used to reference the database:

ALTER DATABASE one RENAME TO `one-two`;