小编Mil*_*iez的帖子

无法撤销 PgSQL AWS RDS 中的权限或删除用户

asd我想从数据库中删除用户。所以,我有两个数据库:foo并且bar用户显然在两个数据库中都有依赖关系。数据库是从 root 用户创建的postgres,但里面的所有foo_migration表和序列都是由用户和分别创建的bar_migration

首先,我以用户身份登录postgres数据库foo。当我尝试删除用户时,我得到:

ERROR: role "asd" cannot be dropped because some objects depend on it包含有关多个序列、表、bar数据库和数据库中一些对象的权限的详细信息postgres

因此,我尝试一一清除事情(同时仍然以数据库postgres中的用户身份登录foo)。我首先尝试REASSIGN OWNED BY asd TO foo_migration;。这会返回ERROR: permission denied,这很奇怪,因为我以用户身份登录postgres。无论如何,然后我尝试

REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public FROM asd;
REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA public FROM asd;
Run Code Online (Sandbox Code Playgroud)

我得到了一堆WARNING: no …

postgresql role users postgresql-9.6 amazon-rds

6
推荐指数
1
解决办法
1万
查看次数

为公共模式创建的扩展在数据库中不可用

所以,我创建了citext扩展schema public,我可以看到它在那里,但是它在该模式的数据库中不可用。数据库public也在其中,因为它是从postgres用户创建的,并且在创建时没有指定架构。这是包含更多数据的屏幕截图: 在此处输入图片说明

所以,您可以看到扩展程序在那里,但是一旦我连接到数据库,它就不再可用,我基本上必须将它安装在数据库中。任何想法如何使其最初也可用于数据库?

PgSQL v9.6

postgresql psql postgresql-extensions

5
推荐指数
1
解决办法
3392
查看次数

首先按某些枚举值排序

我有一个像这样的表:

\n
\xe2\x95\x94\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x97\n\xe2\x95\x91ID \xe2\x95\x91 type (enum)        \xe2\x95\x91 updated_at  \xe2\x95\x91\n\xe2\x95\xa0\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa3\n\xe2\x95\x91 1 \xe2\x95\x91 friend_request     \xe2\x95\x91 <date_time> \xe2\x95\x91\n\xe2\x95\x91 2 \xe2\x95\x91 new_article        \xe2\x95\x91 <date_time> \xe2\x95\x91\n\xe2\x95\x91 3 \xe2\x95\x91 article_read       \xe2\x95\x91 <date_time> \xe2\x95\x91\n\xe2\x95\x91 4 \xe2\x95\x91 article_invitation \xe2\x95\x91 <date_time> \xe2\x95\x91\n\xe2\x95\x9a\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa9\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa9\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x9d\n
Run Code Online (Sandbox Code Playgroud)\n

我想按枚举类型的值对检索到的结果进行排序。

\n

具有值friend_requestarticle_invitation列的记录type应该首先出现,然后是其余的。所有的东西都应该由 订购updated_at DESC

\n

现在,我知道我可以链接多个order by属性,所以

\n
order by type desc, updated_at desc\n
Run Code Online (Sandbox Code Playgroud)\n

将为我排序,并按type值排序结果updated_at。但是如何指定列的某些值type呢?这可能吗?

\n

postgresql order-by enum

5
推荐指数
1
解决办法
7386
查看次数

将 YYYY-MM-DD 日期(无时区)转换为 Postgres 中的 unix 时间戳

我有一个date具有以下值格式的类型列:(YYYY-MM-DD例如。2018-08-03)。我想获得与日期等效的 unix 时间戳,但没有时区。

Fe 日期2018-08-03应该相等1533254400(从这里计算)。

我试过了,to_timestamp(my_date_column, 'YYYY-MM-DD')但它返回 error function to_timestamp(date, unknown) does not exist。我尝试::timestamp...在函数调用结束时添加不同的变体,但无济于事。

目前我在应用程序层进行时间戳转换,但我想将该工作专用于数据库。

postgresql timestamp type-conversion date postgresql-9.6

4
推荐指数
1
解决办法
9170
查看次数