Estoy trabajando con una nueva instalación de postgresql, con el superusuario 'postgres'. Conectado a través de:
sudo -u postgres psql
postgres=# createdb database
postgres-# \list
List of databases
Name | Owner | Encoding | Collation | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 |
template0 | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres
: postgres=CTc/postgres
template1 | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres
: postgres=CTc/postgres
No hay errores, pero la tabla no se está creando. ¿Algunas ideas?
postgresql
psql
Damien Roche
fuente
fuente

Respuestas:
createdbes una utilidad de línea de comandos que puede ejecutar desde bash y no desde psql. Para crear una base de datos desde psql , use lacreate databasedeclaración así:Nota: asegúrese de terminar siempre sus declaraciones SQL con
;fuente
;Llega tarde a la fiesta, pero la respuesta aceptada no explica por qué no se muestra ningún error. Y como esto es algo con lo que se topan a menudo los recién llegados a Postgres, quería agregar eso.
TL / TR: siempre termine sus declaraciones SQL con
;Debido a
createdb databaseque no terminó con,;psqlpiensa que la declaración no está terminada y espera más información. Esto se indica mediante la indicación que cambia depostgres=#apostgres-#. Un cambio extremadamente sutil que me gustaríapsqlque hiciera de manera diferente (más "prominente").Al ingresar el metacomando,
\listla instrucción SQL "actual" se "cancela" sin ejecutarla.Si se
createdbhubiera terminado con a,;la salida habría sido:postgres => createdb foobar; ERROR: error de sintaxis en o cerca de "createdb" LÍNEA 1: createdb foobar; ^ postgres =>Mostrando claramente que algo andaba mal.
fuente
createdbno es válido. Pero luego repetir exactamente el mismo comando con encreate databaselugar decreatedbjunto con un punto y coma funciona perfectamente.Estuve en esta situación no hace mucho. En caso de que alguien más experimente esto, considerando que el símbolo del sistema muestra
postgres-#que puede ejecutar el comando createdb pendiente simplemente escribiendo;y la tecla de retorno.fuente
Crear una nueva base de datos en PostgreSQL es muy simple, ejecute este comando en Linux (ejemplo de CentOS 7):
fuente
Usando un terminal de nodo, tuve que ejecutar:
[Ingresa tu contraseña]
luego ...
Lo que es confuso es que ingresé estos mismos comandos antes y no funcionó. Solo después de cerrar la sesión y volver a iniciarla, pude usar este comando estándar de la documentación: https://www.postgresql.org/docs/10/tutorial-createdb.html
fuente