Schauen Sie sich die folgende sqlfiddle an: 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) ;
Ich habe eine grundlegende Kontakttabelle. Die Felder network_idund network_contact_identhalten ID-Nummern, die mit anderen Tabellen verknüpft sind.
Ich möchte INSERT IGNOREAbfragen für diese Tabelle ausführen können , aber ich möchte die Kombination von network_idund network_contact_idals eindeutigen Schlüssel verwenden, mit dem abgeglichen werden soll.
Wenn ich beispielsweise versuchte, einen Kontakt mit network_id = 4und einzufügen network_contact_id = 12, sah die INSERT IGNOREAbfrage, dass der Eintrag bereits vorhanden ist, und ignorierte alle ausgelösten Fehler.
Also im Grunde network_idist nicht einzigartig. network_contact_idist nicht einzigartig. Aber die Kombination der beiden ist einzigartig. Wie richte ich das ein? Müsste ich ein anderes Feld haben, das den verketteten Werten der beiden anderen Felder entspricht? Oder gibt es eine Möglichkeit, die Schlüssel für diese Tabelle so einzurichten, dass sie das tut, was ich brauche?