我刚接触Postgres数据库。在MySQL中,我们可以通过触发以下查询来检查数据库是否处于只读模式。
SELECT @@global.read_only
同样,有人能帮我提供在Postgres中执行相同操作的查询吗?我尝试了一些东西,如下所示:
SELECT schemaname||'.'||tablename FROM pg_tables
WHERE
has_table_privilege ( 'postgres', schemaname||'.'||tablename, 'select' )
AND schemaname NOT IN ( 'pg_catalog','information_schema');
但是它列出的结果如下,这不是我期望的。
?column?
----------------------------------------
public.schema_migrations
public.credential_methods
public.notifications
public.site_defaults
public.apis
public.client_applications
public.api_groups
public.operations
public.client_application_labels
public.client_application_label_values
public.roles
public.users
public.sdm_user_roles
public.permissions_roles
public.keys
public.o_two_access_tokens
public.settings
public.sdm_users
public.permissions
public.audits
public.oauth_requesttokens
public.oauth_access_tokens
public.oauth_verifiers
public.logged_exceptions
public.api_call_details
public.api_access_roles
public.api_access_users
public.login_attempts
public.system_scopes
public.keys_system_scopes
public.o_two_auth_codes
public.o_two_refresh_tokens
public.service_profiles
public.error_traces
我也尝试了"\du",但这只在终端中有效,而不是在Ruby文件中。
query=ActiveRecord::Base.connection.execute("\du;")
ActiveRecord::StatementInvalid: PGError: 错误:在“du”附近有语法错误 第1行:du;
谢谢, Rafiu
\du
)不是SQL的一部分,而是用于psql命令行前端的终端监视器命令。对于你的原始问题:我不知道答案。只需尝试插入或更新,并处理错误即可。 - undefinedpostgres
拥有select
权限的表格。由于postgres
用户通常是“超级用户”,所以这个输出结果并不奇怪。 - user330315