Pertanyaan Anda:"Dapatkah saya mencapai ini dengan kueri mysql menggunakan indeks unik ? "
Jawabannya 100% ya.
Ada dua cara untuk membuat indeks:
1. CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...);
2. ALTER TABLE table_name
ADD UNIQUE index_name (column1, column2, ...);
Namun, ini hanya akan berfungsi jika tabel Anda tidak memiliki data duplikat. Jika tidak, Anda akan menerima pesan kesalahan seperti ini:
Query: CREATE UNIQUE INDEX index_name ON targets (a, b)
Error Code: 1062
Duplicate entry 'photo-url1' for key 'index_name'
Oleh karena itu, Anda perlu:
- buat tabel kosong baru yang mirip dengan
targets
Anda meja. - buat indeks unik.
INSERT IGNORE
data dari tabel lama.- Ganti nama
targets
ketargets_old
dantargets_new
ketargets
.
Contoh:
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;