2012-08-14 13 views
6

ho ottenuto una forma suggerimento stackoverflow.com per creare schema in un database specifico come segue:Postgres Creazione dello schema in un database specifico

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

Ma sto ottenendo l'errore come segue:

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

*** Error ***

ERROR: syntax error at or near "\"

situazione:

login come Postgress
creare utente U1
creare database db 1 con il proprietario U1
\ Connect U1
creare schema S1

Please help me nella creazione di schema in un db specifica.

+0

Come stai cercando di connettersi al database? Lo stai facendo con lo strumento da riga di comando 'psql'? –

risposta

9

Questo funziona, se - e solo se - si sta utilizzando 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 è un comando psql. Non è normale SQL, quindi non è possibile utilizzarlo in un file .sql. Non c'è modo di farlo da un file sql, per quanto ne so. La logica alla base di questo, è che si dovrebbe riconnettersi a un altro database una volta che si desidera utilizzare tale database diverso. Questo è per la separazione del database. La ragione per cui MySQL ha implementato la sintassi use $database è dovuta alla sua mancanza di schemi, ma PostgreSQL non ha un comando del genere, poiché un database dovrebbe essere separato nello schema piuttosto che nei database.

Problemi correlati