Mik*_*mer 2 mysql indexing mysql-error-1071
我有一个表MySQL有3个字段,我想强制两个字段之间的唯一性.这是表格DDL:
CREATE TABLE `CLIENT_NAMES` (
`ID` int(11) NOT NULL auto_increment,
`CLIENT_NAME` varchar(500) NOT NULL,
`OWNER_ID` int(11) NOT NULL,
PRIMARY KEY (`ID`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
该ID字段是代理键(此表正在加载ETL).该CLIENT_NAME字段包含客户端名称.id OWNER_ID是指示客户所有者.
我以为我可以用一个唯一索引执行本CLIENT_NAME和OWNER_ID,
ALTER TABLE `DW`.`CLIENT_NAMES`
ADD UNIQUE INDEX enforce_unique_idx(`CLIENT_NAME`, `OWNER_ID`);
Run Code Online (Sandbox Code Playgroud)
但是MySQL给了我一个错误:
执行SQL命令以更新表时出错.指定密钥太长; 最大密钥长度为765字节(错误1071)
其他人有什么想法吗?
MySQL不能对长度超过765字节的密钥强制执行唯一性(显然500个UTF8字符可以超过此限制).
| 归档时间: |
|
| 查看次数: |
1500 次 |
| 最近记录: |