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