mysql - 在 MySQL 中,如何解决无法使用定义的字符串作为索引的问题?

标签 mysql

考虑的方法是创建一个固定长度的字符串散列,然后索引该散列。如果是这样,有没有办法在 MySQL 中执行此操作,或者是否需要我在 MySQL 之外执行该过程的某些部分。

数据库引擎是 InnoDB,这里是关于我得到的错误的信息,似乎是正确的。

http://forums.techarena.in/software-development/1185285.htm

基本上尝试使用作为自然长文本键的列作为 UNIQUE constraint ,这意味着如果列字段不唯一,则回滚插入事务。该列的长度可以是 80 到 15 万个字符。

最佳答案

通常 TEXT/LONGTEXT/BLOB 字段上的 UNIQUE 索引不是一个好主意,因为 MySQL 不能有任意长度的索引。您要么必须指定最大字符数(例如 UNIQUE (fieldname(255)) - 我相信 4005 是 UTF8 的当前限制,1000 常规),限制字段长度(在这种情况下您不妨将其设为 VARCHAR),或删除 UNIQUE 索引。

关于mysql - 在 MySQL 中,如何解决无法使用定义的字符串作为索引的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4368956/

相关文章:

mysql - 这个sql函数的正确版本是什么?

php - MySql - 从表中获取最新行,没有重复的主题 ID

ios - 如何在 parse.com 中将一列拆分为多个变量列

sql - 这个 SQL 语法有什么问题?

mysql - MySQL 主从复制的 HAProxy

PHP MySQL 使用 mysqli_fetch_all 分页数据

mysql - 如何从多个表中获取值(value),但值(value)应该是最小的和分组的

c# - 无法从 C# 应用程序连接远程服务器 mysql 数据库

php - 如何在分页结果时让查询转移到后续页面

php - 如何访问具有相同名称的不同表的多个mysql行