sql >> Databasteknik >  >> RDS >> Mysql

MySQL-fel:1395 Kan inte radera från join-vyn

MySQL-dokumentationen säger:

MySQL fungerar som den är designad och hindrar dig från att skjuta dig själv i foten här. I huvudsak stämmer inte antalet rader som skulle raderas från din vy överens med antalet rader som skulle tas bort från de underliggande tabellerna. Vill du också ta bort fotot, utseendet, personen eller fotografen? Eller alla? Eller bara några av dem? MySQL vet inte heller säkert, så det tillåter inte operationen.

Med det i åtanke, kör den här frågan:

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

Om resultatet är något annat än "JA", kanske du vill överväga att designa om din vy. Det andra alternativet skulle vara att ta bort från de underliggande tabellerna direkt.

Det är också en bra idé att skapa en uppdateringsbar vy med hjälp av "WITH CHECK OPTION"-klausulen. Detta förhindrar UPPDATERINGAR eller INSERT till underliggande tabeller, förutom de som uppfyller villkoren som definieras i vyns WHERE-sats. Eller i ditt fall, förhindra Fred från att bråka med Bobs foton.




  1. Slå samman två tabeller för en SELECT-fråga?

  2. Vad är salt när det gäller MYSQL sha1?

  3. Kunskap om att återställa raderade poster i SQL Server

  4. MYSQL REGEXP sökning i JSON-sträng