psql -U username -d mydatabase -c 'SELECT * FROM mytable'
Nếu bạn chưa quen với postgresql và chưa quen với việc sử dụng công cụ dòng lệnh psql
thì có một số hành vi khó hiểu mà bạn nên biết khi tham gia một phiên tương tác.
Ví dụ:bắt đầu một phiên tương tác:
psql -U username mydatabase
mydatabase=#
Tại thời điểm này, bạn có thể nhập truy vấn trực tiếp nhưng bạn phải nhớ kết thúc truy vấn bằng dấu chấm phẩy ;
Ví dụ:
mydatabase=# SELECT * FROM mytable;
Nếu bạn quên dấu chấm phẩy thì khi nhấn enter, bạn sẽ không nhận được gì trên dòng trả về vì psql
sẽ giả sử rằng bạn chưa nhập xong truy vấn của mình. Điều này có thể dẫn đến tất cả các loại nhầm lẫn. Ví dụ:nếu bạn nhập lại cùng một truy vấn, rất có thể bạn sẽ tạo ra lỗi cú pháp.
Như một thử nghiệm, hãy thử nhập bất kỳ mẫu nào bạn muốn tại dấu nhắc psql, sau đó nhấn enter. psql
sẽ âm thầm cung cấp cho bạn một dòng mới. Nếu bạn nhập dấu chấm phẩy trên dòng mới đó rồi nhấn enter, thì bạn sẽ nhận được LỖI:
mydatabase=# asdfs
mydatabase=# ;
ERROR: syntax error at or near "asdfs"
LINE 1: asdfs
^
Quy tắc chung là:Nếu bạn không nhận được phản hồi từ psql
nhưng bạn đã mong đợi ít nhất là SOMETHING, sau đó bạn quên dấu chấm phẩy ;