1

Temat: \connect "testdatabase"

na bazie skryptu kopi bazy danych utworzonego przez pgAdmin3 próbuję utworzyć skrypt do utworzenia pustej bazy wraz z tabelami, wyzwalaczami, procedurami itd.

CREATE DATABASE testdatabase; 
\connect  testdatabase 
CREATE TABLE testtable (testcolumn int); 

po uruchomieniu skryptu pojawia mi się błąd związany z przejściem do nowo utworzonej bazy

BŁĄD:  błąd składni w lub blisko "\"
LINE 2: \connect  testdatabase 
        ^

********** Błąd **********

BŁĄD: błąd składni w lub blisko "\"
Stan SQL: 42601
Znak: 32

do tej pory skrypty tworzenia nowej bazy miałem podzielony na poszczególne skrypty jednak chciałbym to zrobić w jednym czy jest to możliwe?

Ostatnio edytowany przez WitekS (2013-04-25 11:03:15)

2

Odp: \connect "testdatabase"

Taki skrypt normalnie działa. Co znaczy, że pewnie masz w nim jakieś dziwne znaki. Czym go edytowałeś? Czy masz ten skrypt (niedziałający) na jakimś linuksie?

Jak masz, to zrób:

hexdump -C skrypt.sql

i pokaż cały wynik.

--
The best thing about modern society is how easy it is to avoid contact with it.

3

Odp: \connect "testdatabase"

skrypt jak widać jest prosty i przykładowy jego zadanie to utworzenie bazy i w tej bazie tabeli
uruchamiam w pgAdmin ale to chyba nie ma znaczenia system to widows 7

4

Odp: \connect "testdatabase"

Windows nie znam, więc nie uradzę.

Gdybym miał zgadywać, to powiedziałbym, że napisałeś to w notepadzie, albo czymś tego typu, co zostawia dodatkowe mało-/nie- widoczne śmieci.

Ale to może być zupełnie co innego. Ogólnie - to co musisz zrobić, to znaleźć metodę na zobaczenie co naprawdę jest w tym pliku. Poszukaj, może jest na windows jakieś narzędzie typu "hex-viewer", "hex-editor", "byte-editor" czy jakoś tak?

--
The best thing about modern society is how easy it is to avoid contact with it.

5

Odp: \connect "testdatabase"

Myśl: czy ty może zrobiłeś ten pliki poprzez połączenie dwóch lub więcej plików? Jak tak, to pewnie BOM jest przed \connect - czyli w miejscu gdzie go być nigdy nie powinno.

--
The best thing about modern society is how easy it is to avoid contact with it.

6

Odp: \connect "testdatabase"

skrypt jest banalny i napisany do testu to tylko 3 polecenia (jak na początku napisałem) tzn
1) utworzenie bazy

CREATE DATABASE testdatabase;

2) przejście do utworzonej bazy

\connect  testdatabase 

3) utworzenie tabeli w tej bazie

CREATE TABLE testtable (testcolumn int); 

problem jest w punkcie 2 i prawdopodobnie chodzi o to, że nie można tego skryptu uruchamiać w pgAdmin3 jako polecenie sql
ale to są moje domysły...
w ostateczności zostanę przy opcji podziału skryptu na tworzenie bazy a następnie całej reszty...

7

Odp: \connect "testdatabase"

Teraz do mnie dotarło. Otwierasz to w pgadminie? \connect to polecenie psqla. Nie Postgresa (serwera baz danych). I widocznie też nie pgAdmina.

Sorry, że wolno skojarzyłem, ale dla mnie używanie pgAdmina do pracy z postgresem jest czymś ... hmm .. no nie biorę tego w ogóle pod uwagę, sorry.

--
The best thing about modern society is how easy it is to avoid contact with it.

8

Odp: \connect "testdatabase"

dla mnie to o tyle dobre, że przy tworzeniu kolejnej bazy w edytorze pgAdmin-a zmieniam sobie w skrypcie co potrzebuję i w razie błędu od razu kieruje mnie do miejsca z gdzie jest błąd...
dzięki za info smile

Ostatnio edytowany przez WitekS (2013-04-25 16:17:04)

9

Odp: \connect "testdatabase"

Spoko - ja nie oceniam. Po prostu sam nie używam i w ogóle nie myślę o nim. Więc jak ktoś pisze "uruchamiam skrypt" to dla mnie jest "oczywiste", że robi to w psqlu.

Anyway - problem rozwiązany smile

--
The best thing about modern society is how easy it is to avoid contact with it.