在mysql中创建带条件的唯一索引列
场景:现在我表里有三个字段:key_id、type、is_deleted,我现在想实现,某个key_id 的type=1 and id_deleted=0的数据只能出现一次,但不能影响其他类型的数据
-- 添加计算列 calc_column
ALTER TABLE t_index_demo ADD COLUMN calc_column INT AS (CASE WHEN type = 1 AND is_deleted = 0 THEN key_id ELSE NULL END);
-- 创建唯一索引 index_type
CREATE UNIQUE INDEX index_type ON t_index_demo (calc_column);