我将 URL 存储在具有 varchar(4000) 数据类型的列中。我想对此列强制执行唯一性约束,但无法这样做,因为 4000 远远超出了最大限制。
有什么方法可以强制此类列的唯一性吗?
最佳答案
长字段的唯一性不能通过使用索引来强制执行。
正确的方式可能是在trigger内执行选择在插入/更新之前并且因列中已包含的值而失败。
应用程序级别或存储过程内部的一个可行的解决方法可能是在事务内执行新值的选择,然后执行插入(如果该值尚不存在)。
无论如何,相关列的一部分应该被(非唯一)索引以加快选择速度。
关于mysql - varchar(4000) 列的唯一性约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19976247/