ciao!
in una tabella ho il classico campo ID che è chiave primaria e auto increment.
abbiamo fatto parecchia pulizia, anche su record collegati di altre tabelle, e volevo sapere se in qualche modo gli ID che non esistono più sono riutilizzabili.
ciao!
in una tabella ho il classico campo ID che è chiave primaria e auto increment.
abbiamo fatto parecchia pulizia, anche su record collegati di altre tabelle, e volevo sapere se in qualche modo gli ID che non esistono più sono riutilizzabili.
Se hai un autoincrement non ti darà mai un numero già attribuito. Altrimenti puoi riutilizzare numeri già usciti ma a cosa servirebbe ?
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
ciao!
si lo so che auto_increment non ritorna indietro.
e giustamente in quanto ci sarebbe il rischio di assegnare id già usati.
ma mettiamola cos'.
ho tanti id che sono sicuro che non più usati da nessuna parte, e magari è uno "spreco" non usarli.
quindi volevo capire se in qualche modo era possibile riusare quegli id.
ad esempio, se in fase di inserimento il valore dell'id lo passo "a mano" forzandolo??
ma temi forse di arrivare alla fine dei numeri ????
purtroppo io temo che arriveremo prima alla fine della vita![]()
![]()
![]()
Comunque lasciando da parte la "filosofia" e tornando al problema in un caso simile io valuterei di fare
- un nuovo DB identica strutture con ID autoincrement
- con una procedura carichi dentro 1 per volta i record del vecchio DB
-- partendo dalle tabelle madri e finendo con le figlie
-- in ordine di ID
avrai i tuoi problemi sulle tabelle figlie a calcolare la Key esterna che chiaramente cambia
Sia chiaro una operazione simile la puoi fare "una Tantum" in caso di una pulizia straordinaria
e comporta comunque i suoi rischi se non sei ben preparato........
.
ciao!
no vabbè paura che finiscano in numeri no.
più curiosità alla fine.
piuttosto che fare quell'operazione sto bene così!
grazie!
Certo che si. L'importante e' che sia un valore libero. Ma lo scopo dell'id e' quello di identificare in modo univoco un record e senza riferimento ai valori contenuti (nel record), quindi non si spreca nulla. E' un numero e basta.
Un ID INT autoincrement usa sempre 4 byte e quindi si tratta solo di avere degli 1 o 0 messi in qualche modo nei 4 byte del campo.
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr