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_iddan network_contact_idberisi nomor id yang menautkan ke tabel lain.
Saya ingin dapat menjalankan INSERT IGNOREkueri ke tabel ini, tapi saya ingin menggunakan kombinasi network_iddan network_contact_idsebagai kunci unik untuk mencocokkan.
Jadi misalnya, jika saya mencoba menyisipkan kontak yang memiliki network_id = 4dan network_contact_id = 12, INSERT IGNOREkueri akan melihat entri itu sudah ada, dan mengabaikan kesalahan yang terjadi.
Jadi pada dasarnya, network_iditu tidak unik. network_contact_idtidak 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?