我在MySQL
中有一個表,它有3個字段,我想在兩個字段之間執行唯一性。下面是表DDL
:在MySQL中強制唯一行
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的給我一個錯誤:
Error executing SQL commands to update table. Specified key was too long; max key length is 765 bytes (error 1071)
任何人有什麼想法?
Unicode是一種可變長度編碼。字符的大小可以是1到4個字節,只有原始的128個ASCII字符被編碼在一個字節中。 – 2008-09-18 17:37:56
喬,我認爲你的意思是UTF8,而不是Unicode ...? – Gili 2008-09-18 20:26:12