mysql - varchar(4000) 列的唯一性约束

标签 mysql unique duplication

我将 URL 存储在具有 varchar(4000) 数据类型的列中。我想对此列强制执行唯一性约束,但无法这样做,因为 4000 远远超出了最大限制。

有什么方法可以强制此类列的唯一性吗?

最佳答案

长字段的唯一性不能通过使用索引来强制执行。

正确的方式可能是在trigger内执行选择在插入/更新之前并且因列中已包含的值而失败。

应用程序级别或存储过程内部的一个可行的解决方法可能是在事务内执行新值的选择,然后执行插入(如果该值尚不存在)。

无论如何,相关列的一部分应该被(非唯一)索引以加快选择速度。

关于mysql - varchar(4000) 列的唯一性约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19976247/

相关文章:

.net - 字符串对象的 GetHashCode() 值是否唯一?

MySQL 错误 1025

mysql - 如何正确使用表中的空字段(性能方面)

ruby-on-rails - 每个循环 : show item once and sum quantity

MySQL - 确保跨多行的唯一值的最佳方法

java - 查找重复的表达式/参数

android - 避免 Android 样式中的重复代码

mysql - DROP USER IF EXISTS 在 MySQL 中触发语法错误

MySQL 查询在 Navicat 中有效,但在其他地方生成 MySQL 语法错误