2014-06-07 12 views
7

Tôi muốn đặt mặc định statement_timeout cho quyền truy cập của tôi vào cơ sở dữ liệu postgres. Sau khi cấu hình các biến môi trường của tôi, bây giờ tôi có nó ở nơi psql ghi lại tôi trên cơ sở dữ liệu và bảng ưa thích của tôi. Tuy nhiên, trong khi tôi đang khám phá một số bảng trong đó, tôi muốn có một tuyên bố thời gian chờ khoảng một phút. Điều này có thể được thực hiện đơn giản bằng cách nhập SET statement_timeout TO '1min'; vào đầu mỗi phiên, nhưng điều này là không đáng để nhập mỗi lần. Tôi không có quyền truy cập vào cấu hình máy chủ cũng như tôi không muốn thay đổi nó. Lý tưởng nhất tôi có thể làm một cái gì đó để có hiệu lực của cờ alias psql='psql -c "SET statement_timeout TO '1min';"' except the -c` của psql không cho phép đầu vào tương tác. Có bất kỳ giải pháp tốt đẹp cho vấn đề này, hoặc tôi luôn luôn cam chịu để thiết lập thời gian chờ bằng tay cho mỗi phiên tương tác?psql đặt default statement_timeout làm người dùng ở postgres

Trả lời

12

Bạn có thể sử dụng tập tin .psqlrc của bạn (nếu bạn không có một trong thư mục chính của bạn, tạo ra nó, nếu bạn đang ở trên Windows thay vì *nix, các tập tin là % APPDATA% \ postgresql \ psqlrc.conf thay vào đó) và đặt lệnh sau:

set statement_timeout to 60000; commit; 

Cài đặt này bằng mili giây, để cài đặt thời gian chờ là 1 phút. .psqlrc không được sử dụng với số điện thoại -c hoặc -X các yêu cầu psql, vì vậy sẽ cho phép bạn để thời gian chờ chế độ tương tác của bạn thành 1 phút.

Sau đó bạn có thể thực hiện như sau trong psql để xác minh rằng cấu hình đã có hiệu lực:

show statement_timeout; 
+0

Tôi không biết về .psqlrc! Trong phiên bản psql (8.4.5) của tôi, nó không tính 'set [...]' như là một giao dịch, và do đó phàn nàn về 'commit' với' psql: ~/.psqlrc: 1: CẢNH BÁO: không có giao dịch đang tiến hành'. Nếu không thì nó hoạt động. Cảm ơn! – Erik

+0

Chắc chắn, không sao cả. Ah vâng, wackiness của 8.4.x ... Tôi vẫn phải sử dụng phiên bản đó đôi khi và cảm thấy khó chịu bởi những gì không có trong nó được nêu ra hoặc cách nó hoạt động khác nhau. =) – khampson

+0

Điều này chắc chắn là tắt chủ đề bây giờ, nhưng 8.4.x thất vọng là chất xúc tác của tôi để thiết lập một đường hầm ssh. – Erik

Các vấn đề liên quan