Tôi có một bảng trong cơ sở dữ liệu PostgreSQL có 3 cột - c_uid
, c_defaults
và c_settings
. c_uid
chỉ lưu trữ tên người dùng và c_defaults
là một đoạn văn bản dài chứa rất nhiều dữ liệu mà người dùng đó sử dụng.PostgreSQL - truy vấn từ tập lệnh bash dưới dạng người dùng cơ sở dữ liệu 'postgres'
Tôi phải thực hiện câu lệnh từ tập lệnh bash chọn giá trị của cột c_defaults
dựa trên giá trị c_uid
và điều này cần được thực hiện bởi người dùng cơ sở dữ liệu 'postgres'.
Trên CLI Chắc chắn bạn có thể làm như sau:
[mymachine]# su postgres
bash-4.1$psql
postgres=#\c database_name
You are now connected to database "database_name" as user "postgres".
database_name=#SELECT c_defaults FROM user_info WHERE c_uid = 'testuser';
Tuy nhiên, làm thế nào để đạt được điều này thông qua một kịch bản bash?
Mục đích là lấy thông tin từ cột đó, chỉnh sửa và viết lại vào cột đó - tất cả thông qua tập lệnh bash.
Tôi đã sử dụng tùy chọn thứ hai mà bạn đã cung cấp và chuyển nó thành một biến. Cảm ơn bạn. – rahuL
vì vậy nó - psql và không --psql? – radtek
@radtek Với khoảng cách giữa. Bạn đang gọi 'psql' với' sudo' và '--' chỉ là một dấu tách tùy chọn. – konsolebox