-2

私はテーブル構造を持っています:

table {
`id` int(11) NOT NULL AUTO_INCREMENT,
`content_type`,
`protocol`,
`content_id`,
`hash`
}

一意のキーを追加しています

alter table delivery add unique (content_type, protocol, content_id, hash);

クエリを X 回実行する場合、キーの重複を避けるにはどうすればよいですか。

例:

UNIQUE KEY `content_type_2` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_3` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_4` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_5` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_6` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_7` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_8` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_9` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_10` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_11` (`content_type`,`protocol`,`content_id`,`hash`),
UNIQUE KEY `content_type_12` (`content_type`,`protocol`,`content_id`,`hash`),
4

2 に答える 2

0

名前付きの制約を使用します。同じ制約を 2 回作成しようとすると失敗します。

ALTER TABLE delivery ADD CONSTRAINT my_constraint_name UNIQUE (content_type, protocol, content_id, hash);

于 2012-10-11T14:30:09.497 に答える
0

(名前付きキーを使用していない限り)追加しようとしているキーがテーブルに既に含まれているかどうかを(たとえば)次の方法で確認する必要があると思いますSHOW INDEX

SHOW INDEXES FROM table1;
于 2012-10-11T14:32:29.777 に答える