我想在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更改为唯一,错误就会消失。这是正确的做事方式吗? 提前感谢大家!