我有一个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
我以为我可以在and上使用唯一索引来强制执行此操作OWNER_ID
,
ALTER TABLE `DW`.`CLIENT_NAMES`
ADD UNIQUE INDEX enforce_unique_idx(`CLIENT_NAME`, `OWNER_ID`);
但 MySQL 给了我一个错误:
执行 SQL 命令更新表时出错。指定的密钥太长;最大密钥长度为 765 字节(错误 1071)
其他人有什么想法吗?