Ich muss einen bestimmten Datensatz aus der Datenbanktabelle löschen, aber die Tabelle selbst hat keinen Primärschlüssel. Also Bedingung hängt von anderer Tabelle ab. Also, was ist der richtige Weg?Datensätze aus einer Tabelle ohne Primärschlüssel löschen
delete from table_1
where exists
(select distinct tb.*
from table_1 tb, table_2 tb_2, table_3 tb_3
where tb1.col = tb2.col
and tb3.col = tb2.col
and tb3.col_2= 10)
ist der richtige Weg das zu tun? Nehmen wir an, Tabelle_1 hat 4 Spalten und die ersten zwei Spalten sollten die zu entfernenden Kriterien sein.
Es ist der richtige Ansatz. Ich empfehle, zunächst eine Auswahlabfrage auszuführen und zu überprüfen, ob die zurückgegebenen Datensätze tatsächlich die Datensätze sind, die Sie löschen möchten. –
Sie müssen die Unterabfrage korrelieren. Wie geschrieben, wenn eine einzelne Zeile von der Unterabfrage zurückgegeben wird, werden alle Zeilen in 'table_1' gelöscht. –