Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ermitteln Sie, ob eine Viele-zu-Viele-Datensatzkombination vorhanden ist

Bist du wirklich Fremdschlüssel haben? Es sollte eine Möglichkeit geben, diese Kombination von table1.key-->table2.key eindeutig zu deklarieren. Dies würde zu einem regulären SQL-Fehler führen, wenn ein bereits vorhandenes Paar von Einträgen erzeugt wird. Das mag ich an Fremdschlüsseln. Es ist sehr sauber, weil die Informationen über (nicht)erlaubte Einträge auf Datenbankebene bleiben.

Sie haben eine Tabelle A_B, die Zuweisungen enthält, nicht wahr? A.id 88 gehört zu B.id 99 ... usw.?

Und Sie planen, EINEN A-Record kombiniert mit n B-Records einzufügen? Warum nicht - wenn neue Werte A=99 und B sind:10, 11, 12, 17, 18, 20

SELECT b_id
FROM A_B
WHERE a_id = 99
AND b_id IN (10, 11, 12, 17, 18, 20);

Das Ergebnis ist eine Liste von b_ids, die Sie nicht erneut einfügen dürfen ... ODER ein leeres Ergebnis (alle Einträge sind neu).