2012-08-14 22 views
6

Tengo una forma sugerencia stackoverflow.com para crear el esquema de una base de datos específica de la siguiente manera:Postgres Creación esquema de una base de datos específica

CREATE DATABASE foo; 
\connect foo; 
CREATE SCHEMA yourschema; 

Pero estoy error al obtener de la siguiente manera:

ERROR: syntax error at or near "\" LINE 2: \connect foo; ^

*** Error ***

ERROR: syntax error at or near "\"

situación:

de sesión como Postgress
crear usuario U1
crear base de datos db 1 con el dueño U1
\ Connect U1
crear esquema s1

favor me ayude en la creación de un esquema en db específica.

+0

¿Cómo está intentando conectarse a la base de datos? ¿Estás haciendo esto con la herramienta de línea de comandos 'psql'? –

Respuesta

9

Esto funciona, si - y sólo si - que está utilizando psql:

[email protected]:~$ psql template1 
psql (8.4.10) 
Type "help" for help. 

template1=# CREATE DATABASE foo; 
CREATE DATABASE 
template1=# \connect foo; 
psql (8.4.10) 
You are now connected to database "foo". 
foo=# \connect template1 
psql (8.4.10) 
You are now connected to database "template1". 
template1=# DROP DATABASE foo; 
DROP DATABASE 
template1=# \q 

\connect es un comando psql. No es SQL normal, por lo que no puede usar eso en un archivo .sql. No hay forma de hacerlo desde un archivo sql, hasta donde yo sé. La razón detrás de esto es que debe volver a conectarse a una base de datos diferente una vez que desee usar esa base de datos diferente. Esto es para la separación de la base de datos. La razón por la cual MySQL implementó la sintaxis use $database se debe a su falta de esquema, pero PostgreSQL no tiene un comando como ese, ya que una base de datos debe separarse en esquemas, en lugar de bases de datos.

Cuestiones relacionadas