salve a tutti, ho un piccolo problema con il vincolo di chiave esterna, a cui attribuisco la politica 'on delete cascade' ma che tuttavia non funziona...
in pratica, ho due tabelle, la prima:
TAB_BLOG (id_blog, ...)
la seconda
TAB_TESTI(id_testi, idb, ...)
premetto che entrambe le tabelle sono perfettamente funzionanti.
il campo idb, della seconda tabella, si collega al campo id_blog della prima, questo a seguito di una modifica fatta alla tabella TAB_TESTI, in quanto non avevo specificato il vincolo da subito...
alter table TAB_TESTI add constraint foreign key (idb) references TAB_BLOG(id_blog)
solo in un terzo momento ho aggiunto la politica CASCADE per la cancellazione di tuple, pertanto ho prima rimosso il vincolo:
alter table TAB_TESTI drop KEY 'idb'
e successivamente riscritto il vincolo completo:
alter table TAB_TESTI add constraint foreign key (idb) references TAB_BLOG(id_blog) ON DELETE CASCADE
Specifico tutto questo perchè non so se il mancato funzionamento di cascade deriva da tutte queste modifiche successive... magari avrò saltato un passaggio..
comunque, il punto è che se cancello una tupla dalla tabella principale TAB_BLOG non viene cancellata anche la/le relativa/e tupla/e della tabella secondaria TAB_TESTI laddove TAB_TESTI.idb=TAB_BLOG.id_blog
in parole povere, questo cascade non funziona.. d'altra parte non viene nemmeno applicata un'altra politica, come potrebbe essere quella di default che se non sbaglio è NO ACTION, per la quale la cancellazione di una tupla dalla tabella principale che è relata a tuple in altre tabelle non dovrebbe essere consentita...
sinceramente non so dove sbattere la testa.
per i miei inciarmi sql dispongo del pannello phpMyAdmin 2.10.0.2, non so se può servire a qualcuno saperlo...
aiutatemi vi prego, non solo perchè mi servirebbe che questo benedetto cascade funzionasse, ma anche perchè sono curiosa di capire dove sta l'errore...
![]()