Cách thuận tiện để thực hiện các truy vấn đa dòng trong postgres bằng ssh là gì?


9

Nói rằng tôi cần viết tay một số truy vấn trong bảng điều khiển, cách hiệu quả nhất để thực hiện các truy vấn đa dòng như CREATE TABLEcâu lệnh là gì?

Tôi đã quen với việc sử dụng Microsoft Management Studio, nhưng bây giờ tôi thấy mình phải tìm hiểu về PostgreSQL một cách nhanh chóng.


Nhập nó vào? Sao chép và dán? Chuyển hướng từ một tập tin?
Michael Hampton

Có, tôi có nghĩa là gõ nó bằng ngón tay của tôi: P. Những gì tôi nhận được là #lời nhắc postgres xuất hiện chỉ nhập một dòng tại một thời điểm phù hợp cho những thứ như CREATE DATABASEhoặc ALTER USER. Làm thế nào tôi có thể định dạng độc đáo văn bản của mình trước khi thực hiện?
Chad Harrison

Câu trả lời:


4

Thực sự không có thứ gọi là "truy vấn nhiều dòng" - theo như PostgreQuery quan tâm, tất cả khoảng trắng và các dòng mới đó đều vô nghĩa (trừ khi chúng xảy ra trong một chuỗi hoặc chúng ta đang nói về các tab & như vậy trong một COPYtuyên bố hoặc một vài nơi đặc biệt khác).

Viết các truy vấn "trên bàn điều khiển" qua SSH thường được thực hiện bằng psqlcông cụ, đó là thiết bị đầu cuối tương tác Postgres (xem tài liệu để biết thêm thông tin).

Bạn có thể chuyển các tệp văn bản có chứa các truy vấn để psqlsử dụng -ftùy chọn.

Bạn cũng có thể chuyển các truy vấn đến psqldòng lệnh (được trích dẫn là phù hợp với trình bao của bạn) hoặc chuyển chúng qua STDIN (luồng đầu vào tiêu chuẩn) - xem -ctùy chọn.


Ống, nên có suy nghĩ về đường ống. Tôi vẫn học.
Chad Harrison

25

Sau đây sẽ đưa bạn đến thiết bị đầu cuối tương tác của PostgreSQL:

$ psql <your database name>

Sau đó nhập \e(hoặc \edit) để mở trình chỉnh sửa ( vilà mặc định):

# \e

Viết một số truy vấn:

select now();

Cuối cùng, lưu và thoát trình soạn thảo của bạn (ví dụ: :wqtrong vi) và psqlsẽ chạy truy vấn bạn vừa viết.

Để thiết lập một trình soạn thảo khác nhau, chẳng hạn như vimhay nano, một bộ các biến môi trường sau đây: PSQL_EDITOR, EDITOR, VISUAL.

Để biết thêm thông tin, hãy xem https://www.postgresql.org/docs/civerse/app-psql.html và tìm kiếm \e.


2

Bạn có thể viết truy vấn vào một tệp tạm thời và thực hiện nó với psql -f /path/to/temp/file


0

Rõ ràng, nhưng nếu bất cứ ai không biết, bạn có thể viết các câu lệnh nhiều dòng trực tiếp trong lời nhắc psql:

psql -h localhost -p 5432 -U postgres public
public=# SELECT
public=# *
public=# FROM
public=# mytable
public=# LIMIT 1;

Lưu ý ;ký tự dấu - bất kỳ lệnh SQL nào sẽ chỉ được thực thi khi ký tự này được ban hành. Vì vậy, cách dễ nhất là chỉ cần sao chép và dán các lệnh SQL nhiều dòng với một dấu ;.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.