当前位置: 首页 > 面试题库 >

使文本列作为唯一键

轩辕庆
2023-03-14
问题内容

我想在MySQL服务器中使用mediumtext列作为表UNIQUE KEY

CREATE TABLE `parts` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` mediumtext NOT NULL,
      `display_status` int(11) NOT NULL,
       UNIQUE KEY `name` (`name`),
       PRIMARY KEY (`id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

但这出错了

    BLOB/TEXT column 'name' used in key specification without a key length

当我将name的类型更改为varchar时..它起作用了!

你能告诉我是否可以使文本列为 UNIQUE KEY


问题答案:

基本上,您不能将Text列用作UNIQUE键。因为实际上这么大的列将不是唯一的,并且可能会出现更多重复的情况。因此,寻找hashing方法并将该输出用作UNIQUE约束。

希望这对您有帮助



 类似资料:
  • 问题内容: 我有一个包含以下各列的mysql表: 我想使其不存在任何两行,其中行x的group_id的值等于行y的group_id的值,行x的user_id的值也等于行y的user_id的值。 因此,例如,假设我插入以下值: 上面的数据,即使一个mysql查询试图插入它,如果已经存在具有group_id和user_id相同组合的行,也不应创建新行。有没有办法做到这一点?基本上,我试图使两列协同工作

  • null ___________________________________________________________________________________________________________________________________________________________________________________________________

  • 我有以下问题,我有一个已经存在的表,有三个字段field1,field2,field3。Field1实际上是另一个表的外键(@OneToOne)。所有字段2和字段3都可以为空,所以我不能为所有三个字段设置主键。在数据库中,field1 field2 field3有一个唯一约束。 我用JPA/Hibernate尝试了几种解决方案,但没有找到一个好的。如果不定义@Id,JPA当然无法工作。在@Embe

  • 问题内容: 我如何在MySQL中应用distinct关键字,以便仅检查一个列字段是否唯一,同时仍从表中返回其他列? 问题答案: 为了能够做到这一点,mysql必须知道如何处理其他列。您GROUP BY列应该是唯一的,并使用一个函数来告诉它如何处理其他列(所谓的 汇总函数 )。和是常见的例子:

  • 问题 > 我想要一个键值对列表,比如HashMap,或者其他推荐的。 此列表应包含用于检索值的唯一键对象。 键不应该是字符串,因为字符串不是唯一的,可以传递任何值。 常量也是有限的,也使用字符串的概念,不应该被考虑。 示例 > 在这个阶段,我创建了一个包含所有键的枚举。例如,枚举颜色{RED,BLUE},然后将其添加到新的HashMap中。 因此,检索颜色的唯一方法是将枚举用作键列表[color.

  • 所以我有一个表,它用一个昵称作为外键,用一个id作为主键: 到目前为止,一切都很好。然而,每当我试图从发布中获取主键时,它告诉我:“没有唯一的约束来匹配引用表“信息”的给定键。 但是,如果我将表中的信息信息ID更改为唯一,错误就会消失。这是正确的做事方式吗? 提前感谢大家!