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

MySQL-Fehler:1395 Aus der Join-Ansicht kann nicht gelöscht werden

In der MySQL-Dokumentation heißt es:

MySQL funktioniert wie vorgesehen und hindert Sie daran, sich hier selbst ins Knie zu schießen. Im Wesentlichen stimmt die Anzahl der Zeilen, die aus Ihrer Ansicht gelöscht würden, nicht mit der Anzahl der Zeilen überein, die aus den zugrunde liegenden Tabellen gelöscht würden. Möchten Sie auch das Foto, das Erscheinungsbild, die Person oder den Fotografen löschen? Oder alle? Oder nur einige von ihnen? MySQL weiß es auch nicht genau, also lässt es die Operation nicht zu.

Führen Sie in Anbetracht dessen diese Abfrage aus:

SELECT IS_UPDATABLE
FROM INFORMATION_SCHEMA.VIEWS
WHERE TABLE_NAME = 'v1';

Wenn das Ergebnis etwas anderes als "JA" ist, sollten Sie Ihre Ansicht möglicherweise neu gestalten. Die andere Möglichkeit wäre, direkt aus den zugrunde liegenden Tabellen zu löschen.

Es ist auch eine gute Idee, eine aktualisierbare Ansicht mit der Klausel "WITH CHECK OPTION" zu erstellen. Dies verhindert UPDATEs oder INSERTs zu zugrunde liegenden Tabellen, mit Ausnahme derjenigen, die die in der WHERE-Klausel der Ansicht definierten Bedingungen erfüllen. Oder in Ihrem Fall verhindern, dass Fred mit Bobs Fotos herumspielt.