Jestem nowy na PostgreSQL i mam proste pytanie:postgreSQL - psql i: jak wykonać skryptu w danej ścieżki
Próbuję utworzyć prosty skrypt, który tworzy DB więc mogę później nazwać tak:
psql -f createDB.sql
Chcę skrypt zadzwonić innych skryptów (osobne te do tworzenia tabel, dodając ograniczenia, funkcje itp), podobnie jak to:
\i script1.sql
\i script2.sql
działa dobrze pod warunkiem, że stworzony B.sql jest w tym samym katalogu.
Ale jeśli przeniosę script2 do katalogu pod jednym z createdb i modyfikowania createdb więc wygląda to tak:
\i script1.sql
\i somedir\script2.sql
pojawia się błąd:
psql:createDB.sql:2: somedir: Permission denied
jestem przy użyciu Postgres Plus 8.3 dla Windows, domyślny użytkownik PostgreSQL.
EDIT:
Silly me, UNIX tnie rozwiązało problem.
Odwracanie ukośników było wystarczające, nie było konieczności ucieczek. –
Należy zauważyć, że ukośniki do przodu są doskonale poprawne w systemie Windows i są natywnie obsługiwane. Więc możesz używać ukośników do przodu prawie wszędzie w Windows (z wyjątkiem źle napisanych aplikacji). Ponieważ ukośnik odwrotny jest często używany jako znak ucieczki, jego zachowanie będzie niespójne między aplikacjami, a nawet zastosowane w pojedynczej aplikacji. – Kat