2012-08-14 12 views
6

mam jedną formę sugestii stackoverflow.com do tworzenia schematu w konkretnej bazy danych w następujący sposób:Postgres Tworzenie schematu w konkretnej bazy danych

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

Ale otrzymuję błąd w następujący sposób:

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

*** Error ***

ERROR: syntax error at or near "\"

Sytuacja:

Zaloguj się jako wpis pocztowy
utwórz użytkownika u1
utwórz bazę danych db 1 z właścicielem U1
\ połączyć U1
tworzenia schematu s1

Proszę mi pomóc w tworzeniu schematu w konkretnej db.

+0

W jaki sposób próbujesz się połączyć z bazą danych? Czy robisz to za pomocą narzędzia wiersza poleceń 'psql'? –

Odpowiedz

9

To działa, jeśli - i tylko wtedy - używasz 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 jest polecenie psql. To nie jest normalny SQL, więc nie możesz tego użyć w pliku .sql. Nie ma sposobu, aby zrobić to z poziomu pliku sql, o ile wiem. Powodem tego jest to, że powinieneś ponownie połączyć się z inną bazą danych, gdy chcesz użyć tej innej bazy danych. Ma to na celu separację bazy danych. Powodem, dla którego MySQL wdrożył składnię use $database jest brak schematów, ale PostgreSQL nie ma takiej komendy, ponieważ baza danych powinna być oddzielona w schemacie, a nie w bazach danych.