3つのフィールドがあるテーブルがあり、MySQL2つのフィールド間で一意性を強制したいと思います。これが表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)
他に何かアイデアはありますか?