Vaše otázka:"Mohu toho dosáhnout pomocí dotazu mysql pomocí jedinečného indexu? "
."Odpověď je 100% ano.
Existují dva způsoby vytvoření indexu:
1. CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...);
2. ALTER TABLE table_name
ADD UNIQUE index_name (column1, column2, ...);
To však bude fungovat pouze v případě, že vaše tabulka nemá existující duplicitní data. V opačném případě se zobrazí chybová zpráva, jako je tato:
Query: CREATE UNIQUE INDEX index_name ON targets (a, b)
Error Code: 1062
Duplicate entry 'photo-url1' for key 'index_name'
Proto musíte:
- vytvořte novou prázdnou tabulku podobnou vašim
targets
stůl. - vytvořit jedinečný index.
INSERT IGNORE
data ze staré tabulky.- Přejmenujte
targets
natargets_old
atargets_new
natargets
.
Příklad:
CREATE TABLE targets_new LIKE targets;
CREATE UNIQUE INDEX index_name
ON targets_new (a, b);
INSERT IGNORE INTO targets_new SELECT * FROM targets;
RENAME TABLE targets TO targets_old;
RENAME TABLE targets_new TO targets;