MySQL e il mistero del record che scompare [risolto]

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

MySQL e il mistero del record che scompare [risolto]

Messaggio 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?

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Re: MySQL e il mistero del record che scompare

Messaggio da masalapianta »

delete on cascade?

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: MySQL e il mistero del record che scompare

Messaggio 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... :-k

Avatar utente
lablinux
Linux 4.x
Linux 4.x
Messaggi: 1212
Iscritto il: gio 27 nov 2008, 12:23
Desktop: Gnome
Distribuzione: Debian testing
Località: Rho

Re: MySQL e il mistero del record che scompare

Messaggio 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).

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: MySQL e il mistero del record che scompare

Messaggio 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?

Avatar utente
lablinux
Linux 4.x
Linux 4.x
Messaggi: 1212
Iscritto il: gio 27 nov 2008, 12:23
Desktop: Gnome
Distribuzione: Debian testing
Località: Rho

Re: MySQL e il mistero del record che scompare

Messaggio da lablinux »

prima di fasciarti la testa, prova su un db di test.

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: MySQL e il mistero del record che scompare

Messaggio 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. :thumbright:

Avatar utente
lablinux
Linux 4.x
Linux 4.x
Messaggi: 1212
Iscritto il: gio 27 nov 2008, 12:23
Desktop: Gnome
Distribuzione: Debian testing
Località: Rho

Re: MySQL e il mistero del record che scompare [risolto]

Messaggio da lablinux »

quindi dovrai colpire con corpo contundente qualche programmatore?

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: MySQL e il mistero del record che scompare [risolto]

Messaggio da aschenaz »

Già fatto! ;)

Rispondi