小编lin*_*nqu的帖子

为 MySQL 创建部分唯一约束

我和之前的帖子有同样的问题:PostgreSQL 多列唯一约束和 NULL 值。但是那里的解决方案不适用,因为我使用的是 MySQL 而不是 PostgreSQL。

我的桌子看起来像这样:

CREATE TABLE `my_table` (
  `id` bigint(20) NOT NULL,
  `col1` bigint(20) NOT NULL,
  `col2` bigint(20) NOT NULL,
  `col3` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
)
Run Code Online (Sandbox Code Playgroud)

我想要三列col1col2并且col3是独一无二的。但是一个正常的唯一约束

UNIQUE KEY `unique_constraint` (`col1`,`col2`,`col3`)
Run Code Online (Sandbox Code Playgroud)

仍然允许我插入相同的行,其col3NULL. 我想禁止这样的条目:

1  | 1 | 1 | NULL
2  | 1 | 1 | NULL
Run Code Online (Sandbox Code Playgroud)

我在上面的帖子中提出了在 MySQL 中搜索部分唯一约束,但显然 MySQL 5.5 不支持。

有人可以给我一个提示,如何在 mysql 中最好地解决这个问题,我也希望有一个高性能的解决方案!

感谢 mysql 的新手(来自 PostgreSQL)!

mysql null constraint mysql-5.5

4
推荐指数
1
解决办法
3157
查看次数

标签 统计

constraint ×1

mysql ×1

mysql-5.5 ×1

null ×1