我的Postgresql数据库中有一个表,它有3列–c_uid,c_defaults和c_settings。 c_uid只存储用户的名称,而c_defaults是一段很长的文本,其中包含该用户的大量数据。
我必须从bash脚本执行一个语句,该脚本根据c_uid值选择c_defaults列的值,这需要由数据库用户’postgres’完成。
在CLI上,我可以执行以下操作:
[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';
但是,我如何通过bash脚本实现这一目标?
目的是从该列获取信息,编辑它并将其写回该列 – 所有这些都通过bash脚本完成。
试试这个:
原文链接:https://www.f2er.com/postgresql/192865.html#!/bin/bash psql -U postgres -d database_name -c "SELECT c_defaults FROM user_info WHERE c_uid = 'testuser'"
或使用su:
#!/bin/bash su -c "psql -d database_name -c \"SELECT c_defaults FROM user_info WHERE c_uid = 'testuser'\"" postgres
还有sudo:
#!/bin/bash sudo -u postgres -H -- psql -d database_name -c "SELECT c_defaults FROM user_info WHERE c_uid = 'testuser'"