2016-06-30 23 views
0

Ich versuche, Informationen aus zwei Tabellen gleichzeitig zu löschen, die miteinander verbunden sind, aber nicht, dass ich im Stande bin, mich um diesen Fehler zu geben:löschen Zeilen aus mehreren Tabellen Einschränkungsfehler

Can not delete or update a row parent: a foreign key constraint fails (socios . pagamentos , CONSTRAINT FK_FOREIGN KEY ( nrSocio`) ON DELETE NO ACTION ON UPDATE NO ACTION)

screenshot

+0

löschen zuerst aus unabhängigen Reihe vom Kind –

+1

Löschen (Referenzierung) Tabelle zuerst, dann die übergeordnete letzte – Matt

+0

Könnten Sie einige der Bibliotheken auflisten oder stapeln Sie verwenden? JDBC? JPA? – kag0

Antwort

0

Sie können Ihr Tischdesign ändern und die Beziehung delete cascade machen. In diesem Fall werden die untergeordneten Zeilen automatisch gelöscht.

Oder Sie könnten die Datensätze in einer einzigen Anweisung wie diese

delete c, p 
from parent_table p 
left join child_table c on p.id = c.parent_id 
where p.id = 1 
+0

Die Tabelle hat die Personen und die andere Tabelle enthält Informationen aller Personen, nur wenn ich die Person lösche, die ich die Informationen dieser Person in der anderen Tabelle löschen möchte –

0

löschen Wenn Sie aus übergeordneter Tabelle löschen, Daten in Kind tablr nicht in der Lage sein, übergeordnete Tabelle zu verweisen. Aus diesem Grund gibt es eine Referenz-ib-Kind-Tabelle, die Sie nicht aus der Eltern-Tabelle löschen können. Es gibt wenige Möglichkeiten, diese Situation loszuwerden.

  1. Löschen von Daten von untergeordneter Tabelle und dann aus übergeordneter Tabelle löschen

  2. Sie können Kaskade Beziehung in der Tabelle löschen. In diesem Fall werden Daten in der untergeordneten Tabelle auch dann gelöscht, wenn Sie Daten aus der übergeordneten Tabelle löschen.

  3. Die Fremdschlüsseleinschränkung kann entfernt werden, um zu löschen, was kein guter Ansatz ist.

Verwandte Themen