Lihatlah sqlfiddle berikut: http://sqlfiddle.com/#!2/dacb5/1
CREATE TABLE contacts
(
id int auto_increment primary key,
name varchar(20),
network_id int,
network_contact_id int
);
INSERT INTO contacts
(name, network_id, network_contact_id)
VALUES
('John', 4, 10),
('Alex', 4, 11),
('Bob', 4, 12),
('Jeff', 4, 45),
('Bill', 7, 11),
('Walter', 7, 45),
('Jessie', 7, 360) ;
Saya memiliki tabel dasar kontak. Bidang network_id
dan network_contact_id
berisi nomor id yang menautkan ke tabel lain.
Saya ingin dapat menjalankan INSERT IGNORE
kueri ke tabel ini, tapi saya ingin menggunakan kombinasi network_id
dan network_contact_id
sebagai kunci unik untuk mencocokkan.
Jadi misalnya, jika saya mencoba menyisipkan kontak yang memiliki network_id = 4
dan network_contact_id = 12
, INSERT IGNORE
kueri akan melihat entri itu sudah ada, dan mengabaikan kesalahan yang terjadi.
Jadi pada dasarnya, network_id
itu tidak unik. network_contact_id
tidak unik. Namun kombinasi keduanya unik. Bagaimana cara mengatur ini? Apakah saya harus memiliki satu bidang lain yang merupakan nilai gabungan dari dua bidang lainnya? Atau ada cara untuk mengatur kunci untuk tabel ini sehingga akan melakukan apa yang saya butuhkan?