Dai un'occhiata al seguente sqlfiddle: 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) ;
Ho una tabella di contatti di base. I campi network_id
e network_contact_id
contengono numeri ID che si collegano ad altre tabelle.
Voglio essere in grado di eseguire INSERT IGNORE
query su questa tabella, ma desidero utilizzare la combinazione di network_id
e network_contact_id
come chiave univoca per la corrispondenza.
Quindi, per esempio, se provassi a inserire un contatto che aveva network_id = 4
e network_contact_id = 12
, la INSERT IGNORE
query vedrebbe quella voce già esistente e ignorerebbe qualsiasi errore che veniva generato.
Quindi, in sostanza, network_id
non è unico. network_contact_id
non è unico. Ma la combinazione dei due è unica. Come lo installo? Dovrei avere un singolo altro campo che è i valori concatenati degli altri due campi? O c'è un modo per impostare le chiavi per questa tabella in modo che faccia ciò di cui ho bisogno?