首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为MySQL创建长度为长的长文本列索引

为MySQL创建长度为长的长文本列索引
EN

Stack Overflow用户
提问于 2022-02-18 07:14:12
回答 1查看 955关注 0票数 0

我在C#中为MySQL数据库创建了一个MySQL迁移文件。我正在尝试在一个长文本列上创建一个索引,并且我知道您需要在一个索引中为长文本列指定一个长度。

有什么办法在代码中做到这一点吗?我有这个复合索引,其中Column2是长文本:

代码语言:javascript
复制
migrationBuilder.CreateIndex("idx_temp", "Table1", new[] { "Column1", "Column2" }, null, false, null);

这在将迁移文件推送到数据库时失败了,因为缺少为Column2指定长度。我在CreateIndex方法上找不到任何允许您指定这一点的重载。

在这个上下文中,您在哪里指定长度?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-02-18 07:28:03

在MySQL中的文本/blob text/blob列上不能有唯一的索引。

如果希望在文本或BLOB字段上建立索引,则必须指定固定长度才能实现这一点。

来自MYSQL:http://dev.mysql.com/doc/refman/5.0/en/create-index.html

BLOB和TEXT列也可以进行索引,但必须给出前缀长度。

基本例子:

代码语言:javascript
复制
CREATE UNIQUE INDEX index_name ON misc_info (key(10));

虽然你的桌子设计可能有问题。你最好把这个贴出来。通常你应该有这样的东西:

代码语言:javascript
复制
public class MyText
{
    [Key]
    public int Id { get; set; }

    //leaving this blank it will give you nvarchar(MAX) or longtext basically
    public string Txt { get; set; }
}

不过要少用这个。将字符串保留为最大值在DBs中可能会有风险,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71169624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档