【发布时间】:2010-09-10 13:04:37
【问题描述】:
我在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;
ID 字段是代理键(此表正在加载 ETL)。
CLIENT_NAME 是一个包含客户端名称的字段
OWNER_ID 是一个 id,表示客户所有者。
我认为我可以在 CLIENT_NAME 和 OWNER_ID 上使用唯一索引来强制执行此操作,
ALTER TABLE `DW`.`CLIENT_NAMES`
ADD UNIQUE INDEX enforce_unique_idx(`CLIENT_NAME`, `OWNER_ID`);
但是 MySQL 给了我一个错误:
执行 SQL 命令更新表时出错。 指定的密钥太长;最大密钥长度为 765 字节(错误 1071)
其他人有什么想法吗?
【问题讨论】:
标签: mysql indexing mysql-error-1071