sql >> Database teknologi >  >> RDS >> Mysql

MySQL-fejl:1395 Kan ikke slette fra deltagelsesvisning

MySQL-dokumentationen siger:

MySQL fungerer som det er designet og forhindrer dig i at skyde dig selv i foden her. I det væsentlige svarer antallet af rækker, der ville blive slettet fra din visning, ikke med antallet af rækker, der ville blive slettet fra de underliggende tabeller. Vil du også slette billedet, udseendet, personen eller fotografen? Eller dem alle sammen? Eller bare nogle af dem? MySQL ved det heller ikke med sikkerhed, så det tillader ikke operationen.

Med det i tankerne, kør denne forespørgsel:

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

Hvis resultatet er noget andet end "JA", kan du overveje at redesigne din visning. Den anden mulighed ville være at slette fra de underliggende tabeller direkte.

Det er også en god idé at oprette en opdaterbar visning ved hjælp af "WITH CHECK OPTION"-klausulen. Dette forhindrer OPDATERINGER eller INSERT til underliggende tabeller, undtagen dem, der opfylder betingelserne defineret i visningens WHERE-klausul. Eller i dit tilfælde, forhindre Fred i at rode med Bobs billeder.




  1. udefineret indeks Navn

  2. SqlAlchemy forbindelsesstreng

  3. konverter datostreng til mysql datetime-felt

  4. PostgreSQL:eksporter resulterende data fra SQL-forespørgsel til Excel/CSV