psql -U username -d mydatabase -c 'SELECT * FROM mytable'
Jeśli jesteś nowy w postgresql i nie znasz narzędzia wiersza poleceń psql
to jest pewne mylące zachowanie, o którym powinieneś wiedzieć po wejściu w sesję interaktywną.
Na przykład zainicjuj sesję interaktywną:
psql -U username mydatabase
mydatabase=#
W tym momencie możesz wpisać zapytanie bezpośrednio, ale musisz pamiętać o zakończeniu zapytania średnikiem ;
Na przykład:
mydatabase=# SELECT * FROM mytable;
Jeśli zapomnisz średnika, to po naciśnięciu klawisza Enter nic nie otrzymasz w wierszu powrotu, ponieważ psql
przyjmie, że nie zakończyłeś wpisywania zapytania. Może to prowadzić do wszelkiego rodzaju zamieszania. Na przykład, jeśli ponownie wprowadzisz to samo zapytanie, najprawdopodobniej pojawi się błąd składni.
W ramach eksperymentu spróbuj wpisać dowolny błąd w wierszu polecenia psql, a następnie naciśnij Enter. psql
po cichu zapewni ci nową linię. Jeśli wpiszesz średnik w tej nowej linii, a następnie naciśniesz Enter, otrzymasz BŁĄD:
mydatabase=# asdfs
mydatabase=# ;
ERROR: syntax error at or near "asdfs"
LINE 1: asdfs
^
Ogólna zasada brzmi:Jeśli nie otrzymałeś odpowiedzi od psql
ale spodziewałeś się przynajmniej COŚ, to zapomniałeś średnika ;