php - 跨 2 列的 PostgreSQL 10 约束?

标签 php sql postgresql

是否可以添加一个约束来检查两列在 PostgreSQL 10 中是否唯一?我环顾四周,但找不到与我的特定需求相关的任何内容。

我的问题是我必须跟踪与辅助 ID(集线器)关联的个人 ID(标签)。我无法将我的标签 ID 设置为唯一,因为它们会多次与中心 ID 相关联。我也无法将集线器 ID 设置为唯一,因为它们会有一堆关联的标签 ID。

有没有办法说(标签 123 和集线器 456)是唯一的,但是如果集线器是 789,标签 123 仍然可以被记录,反之亦然?

其根源是因为 ON CONSTRAINT DO UPDATE 似乎在没有唯一约束的情况下不起作用,我现在被卡住了。

引用资料、解决方案、已解决的其他相关问题,如有任何帮助,我们将不胜感激!

最佳答案

你需要定义一个primary key由这两列组成。这样,您的表中可以有两行或更多行,其主键第一列的值相同,但第二列的值不同,反之亦然。

此外,如果您还没有,可以使用 pgAdmin ,这是一个可视化工具,可帮助您使用简单的用户界面创建数据库并定义表、列、数据类型、约束、主键等。

关于php - 跨 2 列的 PostgreSQL 10 约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50498376/

相关文章:

ruby-on-rails - 名称错误 : uninitialized constant Carrierwave (Deploy to Heroku)

arrays - jsonb vs jsonb[] 用于客户的多个地址

php - 如何在 laravel 5 中模拟模型上的 create 方法?

SQL - Like and greater than 函数

Mysql UPDATE 表与最近的位置

sql - PostgreSQL如何获取某些行的总和的平均值

postgresql - 如何能够垂直滚动终端以查看大表中的所有数据

php - 我可以使用私有(private)实例方法作为回调吗?

java - XSLT 处理巨大的 XML 文件(几乎 5 GB)

PHP/MySQL 将文本数据类型的时间戳转换为可用的日期格式