gpt4 book ai didi

mysql - 使用 where 子句创建唯一索引

转载 作者:行者123 更新时间:2023-11-29 06:47:51 28 4
gpt4 key购买 nike

我在 mysql 上的 CREATE UNIQUE INDEX 上使用 where 子句时遇到问题。我知道你不能只在 CREATE UNIQUE INDEX 的末尾添加 where 子句。下面的例子。

CREATE UNIQUE INDEX FAKE_TABLE_INDEX ON TABLE_NAME (COLUMN_NAME) WHERE INACTIVE = 0;

上面的查询给了我一个错误。那么我可以采取其他方法来解决此查询吗?

最佳答案

MySQL 没有过滤索引。如果我了解它们的作用(通过阅读 Microsoft docs ),我认为最接近的类似功能是多列索引:

CREATE INDEX fake_table_index ON table_name (inactive, column_name);

这比过滤索引更昂贵,因为它索引所有 inactive 的值,而不仅仅是 inactive = 0 的位置。

这也没有过滤索引所具有的唯一约束。它仅对优化查询有用,对强制唯一性没有用。如果需要,您必须使用触发器来执行此操作。

关于mysql - 使用 where 子句创建唯一索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48650493/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com