多列唯一索引可以添加限制条件吗

2018-05-18 09:55:06 +08:00
 corningsun

对于用户表

table_user {
  id,
  user_name,
  user_telephone,
  user_status
}

其中 user_status:1,启用; 2, 禁用;-1,删除;

我想保证未删除的用户中,用户手机号是唯一的,该如何创建索引?

unique index (user_telephone, user_status) where user_status <> -1 ???

2564 次点击
所在节点    PostgreSQL
5 条回复
CRVV
2018-05-18 10:32:51 +08:00
CREATE UNIQUE INDEX unique_user_idx ON table_user (user_telephone) WHERE user_status <> -1;
corningsun
2018-05-18 10:46:42 +08:00
@CRVV

可行,灰常感谢~~~
RorschachZZZ
2018-05-18 11:43:23 +08:00
@corningsun 请问是 mysql 吗?
corningsun
2018-05-18 18:05:38 +08:00
@RorschachZZZ

PostgreSQL
whx20202
2018-05-21 15:53:19 +08:00
这个应该是部分索引,据我所知 mysql 没有,如果迁移可能需要留神

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/455801

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX