MySQL unique and Laravel soft delete
laravel 的 soft delete trait 使用 deleted_at 来作为约束。由于需要同时使用唯一和软删除两个特性,所以把 deleted_at 也作为 unique 的一个联合键。测试的时候发现,当 deleted_at 为 null 的时候,可以无限插入,unique并没有约束成功。MySQL官网描述如上,解决方案也容易,直接将 deleted_at 设置为 not null 即可
laravel 的 soft delete trait 使用 deleted_at 来作为约束。由于需要同时使用唯一和软删除两个特性,所以把 deleted_at 也作为 unique 的一个联合键。测试的时候发现,当 deleted_at 为 null 的时候,可以无限插入,unique并没有约束成功。MySQL官网描述如上,解决方案也容易,直接将 deleted_at 设置为 not null 即可