加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

2列组合的sql唯一约束

发布时间:2021-02-23 13:08:04 所属栏目:编程 来源:网络整理
导读:如何在两列中的两个值的组合上创建唯一约束. 含义 column1 column2 2 1 寻找禁止的约束 column1 column2 1 2 解决方法 如果您的数据库允许在索引中使用表达式,则可以执行以下操作(ANSI SQL): CREATE UNIQUE INDEX on your_table (least(column1,column2),gre

如何在两列中的两个值的组合上创建唯一约束.

含义

column1  column2 
   2        1

寻找禁止的约束

column1  column2 
   1        2

解决方法

如果您的数据库允许在索引中使用表达式,则可以执行以下操作(ANSI SQL):
CREATE UNIQUE INDEX on your_table (least(column1,column2),greatest(column1,column2));

请注意,这是唯一的索引,而不是唯一约束.大多数DBMS的唯一区别是您不能将唯一索引作为外键的目标,但除此之外它们用于相同的目的.

如果您的DBMS没有least()或most(),您可以使用CASE表达式替换它:

create unique index on your_table 
  (case column1 < column2 then column1 else column2 end,case column2 > column1 then column2 else column1 end));

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读