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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.