赞
踩
MySQL表添加复合唯一性约束时提示(pgsql添加很顺利,没有遇到这种情况):error: Specified key was too long; max key length is 767 bytes
即对两个或两个以上的字段进行唯一性约束时
例如col1,col2
其中col1可以重复出现,col2也可重复出现,但col1,col2组合不能重复
解决过程如下:
启用系统变量innodb_large_prefix
并满足下面3个条件:
1: 系统变量innodb_large_prefix为ON
2: 系统变量innodb_file_format为Barracuda
3: ROW_FORMAT为DYNAMIC或COMPRESSED
下面进行验证
show variables like '%innodb_large_prefix%';
结果
show variables like '%innodb_file_format%';
结果
show table status from 数据库 where name='表';
结果
以上参数我已经改过了,所以都符合要求了,如果结果与要求不一致,使用alter进行更新
之后再添加唯一约束,成功
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。