2012-08-14 12 views
6

Ich habe einen Vorschlag Form stackoverflow.com zu Schema in einer bestimmten Datenbank zu erstellen, wie folgt:Postgres Erstellen von Schema in einer bestimmten Datenbank

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

Aber ich bin immer Fehler wie folgt:

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

*** Error ***

ERROR: syntax error at or near "\"

Situation:

Anmeldung als Postgress
Benutzer u1
erstellen Datenbank db erstellen 1 mit dem Besitzer u1
\ u1
erstellen Schema s1

Bitte helfen Sie mir bei der Schaffung von Schema in einer bestimmten db verbinden.

+0

Wie versuchen Sie, eine Verbindung zur Datenbank herzustellen? Machst du das mit dem Befehlszeilenprogramm 'psql'? –

Antwort

9

Dies funktioniert, wenn - und nur wenn - Sie verwenden 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 ist ein psql Befehl. Es ist kein normales SQL, Sie können das also nicht in einer .sql-Datei verwenden. Soweit ich weiß, gibt es keine Möglichkeit, dies in einer SQL-Datei zu tun. Der Grund dafür ist, dass Sie sich erneut mit einer anderen Datenbank verbinden sollten, sobald Sie diese andere Datenbank verwenden möchten. Dies ist für die Datenbanktrennung. Der Grund, warum MySQL die use $database-Syntax implementiert hat, ist der Mangel an Schemas, aber PostgreSQL hat keinen solchen Befehl, da eine Datenbank in Schemas und nicht in Datenbanken aufgeteilt werden sollte.

Verwandte Themen