Làm cách nào để ngăn thực thi truy vấn sau khi thoát khỏi trình soạn thảo \ e trong psql?


8

Có tùy chọn nào có thể thay đổi hành vi "thoát trình soạn thảo bên ngoài -> truy vấn chạy tự động" của công tắc psql \ e không? (Khác với cố ý xáo trộn cú pháp truy vấn).

Câu trả lời:


8

Đừng thêm dấu chấm phẩy ( ;) và bạn vẫn ổn. Tôi trích dẫn hướng dẫn về \ehoặc \editlệnh meta ở đây :

... nếu truy vấn kết thúc bằng (hoặc chứa) dấu chấm phẩy, nó sẽ được thực thi ngay lập tức. Nếu không, nó sẽ chỉ chờ trong bộ đệm truy vấn; gõ dấu chấm phẩy hoặc \ggửi nó hoặc \rhủy bỏ.


0

Bạn luôn có thể tiền tố truy vấn với chuỗi nhận xét postgres:

--select foo from bar;

và truy vấn sẽ không chạy nhưng sẽ có sẵn trong bộ đệm lịch sử thời hạn psql để chỉnh sửa.


0

Nếu bạn có nhiều yêu cầu và một số dấu chấm phẩy, hãy sử dụng Giao dịch:

Trong chế độ soạn thảo mở psql \e:

-- at start of edited text 
BEGIN TRANSACTION;
-- ...  your requests here
-- save exit

Quay lại psql: yêu cầu của bạn được thực thi nhưng thay đổi không được viết:

Nếu tất cả đều ổn, hãy lưu các thay đổi với:

COMMIT;

khác Nếu bạn có lỗi hoặc muốn hủy:

ROLLBACK;
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.