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:
createdb
es 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 database
declaració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 database
que no terminó con,;
psql
piensa 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íapsql
que hiciera de manera diferente (más "prominente").Al ingresar el metacomando,
\list
la instrucción SQL "actual" se "cancela" sin ejecutarla.Si se
createdb
hubiera terminado con a,;
la salida habría sido:Mostrando claramente que algo andaba mal.
fuente
createdb
no es válido. Pero luego repetir exactamente el mismo comando con encreate database
lugar decreatedb
junto 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