zoukankan      html  css  js  c++  java
  • EF6 MySQL错误之“Specified key was too long; max key length is 767 bytes”

    由于 MySQL Innodb 引擎表索引字段长度的限制为 767 字节,因此对于多字节字符集的大字段(或者多字段组合索引),创建索引会出现上面的错误。

    以 utf8mb4 字符集 字符串类型字段为例:utf8mb4 是 4 字节字符集,则默认支持的索引字段最大长度是: 767 字节 / 4 字节每字符 = 191 字符,因此在 varchar(255) 或 char(255) 类型字段上创建索引会失败。

    解决方法:

    1.使用NuGet引用MySQL.Data.Entities。

    2.在你的DbContext里添加代码:

       [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
        public class MyContext : DbContext
        {
            public MyContext() : this() { }
    
            static MyContext ()
            {
                DbConfiguration.SetConfiguration(new MySql.Data.Entity.MySqlEFConfiguration());
            }
        }

    完。

  • 相关阅读:
    模拟
    广搜——最优方案
    动态规划——背包
    动态规划——树规
    动态规划——区间
    fill 的用法
    状态压缩dp
    超大背包问题
    lower_bound
    弹性碰撞 poj 3684
  • 原文地址:https://www.cnblogs.com/Linner/p/6297223.html
Copyright © 2011-2022 走看看