我有两张桌子:一张user
桌子和一张friendship
桌子。假设friendship
表格如下所示:
friendship
------------
user_one_id
user_two_id
other_fields
Run Code Online (Sandbox Code Playgroud)
我需要强制执行和忽略ordering值组合的唯一性,因此:(user_one_id, user_two_id)
user_one_id | user_two_id
------------+------------
1 | 2
2 | 1 -- the DBMS should throw a unique constraint error when trying to insert a row like this one.
Run Code Online (Sandbox Code Playgroud)
另外重要的一点是,user_one_id
代表发起的friendship
,并user_two_id
代表收件人,所以我不能只是做了两个“小”的ID user_one_id
。
问题
有没有办法使用约束来做到这一点,还是应该以其他方式实现?
我在 AWS 中有两个 postgres 数据库服务器,A 和 B。这些数据库有不同的表。这两个数据库也有自己的只读副本。
我的目标是一个简单的解决方案,用于从 A 副本到 B 副本进行跨数据库连接。从 master 查询不是一种选择,因为此功能适用于我团队中的分析师,而不是应用程序。
我按照说明通过执行 CREATE SERVER、CREATE USER MAPPING 和 CREATE FOREIGN TABLEs在 A 的 master 上设置 postgres_fdw ,并且我能够轻松地从 A master 查询到 B 副本。但是,这些服务器和外部表定义没有复制到 A 副本。我无法在副本上运行这些创建命令,因为它是只读的。
是否可以使用 postgres_fdw 从 A 副本到 B 副本?如果没有,这个问题还有其他解决方案吗?