sql - 多列的唯一约束是否在每列上创建索引

标签 sql postgresql

如果我创建一个像这样的唯一约束unique(colA, colB);

它是否创建 2 个索引,每列 1 个?或者它的内部实际上是如何工作的?

最佳答案

它只会在两列上创建一个索引,并且两列在整个表中不能包含重复项。

您可以为 colA 添加多个重复项,但考虑到具有相同 colA 的每行的 colB 是不同的,反之亦然。

colA   colB
Tejash SO
Tejash SO1
Tejash SO2

允许

colA colB
SO1  TEJASH
SO2  TEJASH
SO3  TEJASH

也是允许的。

关于sql - 多列的唯一约束是否在每列上创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65616886/

相关文章:

sql - 测试使用并返回 refcursor 的 PostgreSQL 函数

javascript - Sequelize 为 Postgres 'timestamp with time zone' 列返回 null

json - 如何通过 "full"JSON字段查询?

postgresql - PL/pgSQL block 是如何编译的?

sql - 加入动态列名称

sql - 如何在 SQL 和关系代数中无论列顺序如何只列出每对元组一次?

php - MySQL 普通查询 vs Join 查询不同的结果

c# - 用于管理 SQL 表中位置的算法

sql - 使用SMO从SQL脚本出单个对象

mysql - 如何让我的程序在Vb.net中创建一个本地MYSQL服务器,就像xampp提供的那样?