Pagina 1 di 1
MySQL e il mistero del record che scompare [risolto]
Inviato: mar 5 giu 2012, 8:10
da aschenaz
Mi riferiscono una cosa stranissima che accadrebbe su di una tabella mysql: è una tabella abbastanza convenzionale, con un index numerico in auto_increment, in cui l'unica particolarità è che il record con index 1 fornisce una specie di valore di riferimento e, pertanto, non va cancellato né modificato. Il fatto strano è che, saltuariamente (anche dopo molti mesi), questo record sparisce dalla tabella, senza che nessuno lo elimini materialmente (tra l'altro è una riga nascosta al fruitore). La mia ipotesi è che venga escluso automaticamente in sede di eventuali backup/ripristino, ma mi sembra lo stesso una cosa implausibile...
Che ne pensate?
Re: MySQL e il mistero del record che scompare
Inviato: mar 5 giu 2012, 8:45
da masalapianta
delete on cascade?
Re: MySQL e il mistero del record che scompare
Inviato: mar 5 giu 2012, 9:47
da aschenaz
masalapianta ha scritto:delete on cascade?
Ma, per il poco che ne sappia io, quell'opzione servirebbe a cancellare le righe in tabelle figlie, quando viene a mancare il riferimento nella tabella genitrice. In questo caso, è quella la tabella genitrice e la riga n. 1 contiene un valore di riferimento per una specie di default, che viene richiamato in una tabella figlia...

Re: MySQL e il mistero del record che scompare
Inviato: mar 5 giu 2012, 10:19
da lablinux
Prova a cancellare la riga della tabella figlia che si riferisce alla riga genitrice con index 1 (chiamarla riga 1 non mi piace anche perché la potresti avere generata dopo la prima).
Re: MySQL e il mistero del record che scompare
Inviato: mar 5 giu 2012, 10:35
da aschenaz
Nella tabella figlia, ci sono numerosi record che fanno riferimento a quella riga e vengono inseriti/cancellati con una certa frequenza. In teoria, sarebbe forse probabile che, se nella tabella figlia vengono cancellati occasionalmente tutti i record che puntano a quella riga, la riga stessa verrebbe eliminata?
Nel caso, come si potrebbe fare per evitarlo?
Re: MySQL e il mistero del record che scompare
Inviato: mar 5 giu 2012, 10:58
da lablinux
prima di fasciarti la testa, prova su un db di test.
Re: MySQL e il mistero del record che scompare
Inviato: mar 5 giu 2012, 12:01
da aschenaz
Ho trovato l'inghippo: non era un problema di mysql. Come mi hanno confermato, questa cosa del
record con index 1 (

) è stata aggiunta successivamente. Sono andato a spulciare la pagina di raccolta dati ed ho trovato una funzione che andava a cancellare i record della tabella incriminata quando venivano cancellati quelli della tabella figlia. Ho aggiunto una condizione if ( $indice!==1 ) ed ho risolto. Lo dicevo io che era strano...!
Grazie a tutti.

Re: MySQL e il mistero del record che scompare [risolto]
Inviato: mar 5 giu 2012, 12:19
da lablinux
quindi dovrai colpire con corpo contundente qualche programmatore?
Re: MySQL e il mistero del record che scompare [risolto]
Inviato: mar 5 giu 2012, 12:41
da aschenaz
Già fatto!
