Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    61

    [MYSQL] Campi auto-increment e limiti di storage

    Ciao a tutti,

    vorrei sapere se esiste un modo per far riutilizzare ad una certa tabella i campi auto-increment delle righe che sono state cancellate (premettendo che i campi di cui parlo sono le chiavi primarie della tabella).

    Lo chiedo in quanto ho ricevuto una mole inaspettata di dati e quindi ho necessità di sfruttare tutto lo spazio lasciato dai vecchi dati cancellati per non incorrere presto nel limite di archiviazione del campo (sia esso un mediumint o un tinyint) e volendo evitare di dover cambiare i tipi di questi stessi campi.

    Se non mi fossi spiegato bene cerco di metterla un pò più terra-terra...
    Per fare un esempio ho una tabella con una chiave primaria smallint auto-increment.
    Se all'inizio questa colonna sarà stata riempita successivamente con 1,2,3,4.... Adesso con successive cancellazioni e inserimenti sono arrivato ad avere un sacco di "posti liberi" in questa successione di numeri (es. 4,9,15,22....) e vorrei ora tornare a sfruttarli, sperando che questo comporti cambiamenti poco invadenti (la mia speranza era appunto che ci fosse un sistema per cui mysql lo fa in automatico sfruttando gli index)

    Grazie

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    1) Crei una tabella temporanea in cui memorizzi tutto


    codice:
    create temporary table temp (
    select * from tabella)
    2) La svuoti del contenuto

    truncate tabella

    3) La ripopoli
    codice:
    insert into tabella (qui elenchi tutti i tuoi campi separati da virgola tranne quello dell'id)
    select qui elenchi tutti i tuoi campi separati da virgola tranne quello dell'id 
    from temp
    Fatti prima un backup per sicurezza.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    61
    Non intendo tanto per i valori che sono già presenti nel database, ma piuttosto per i nuovi inserimenti che verranno... Infatti il database di cui parlo ha molte tabelle con anche più di un riferimento esterno, e fare una cosa del genere credo farebbe esplodere tutto :-D (anche solo pensando alle cancellazioni a cascata)

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Se la tabella non è a sè stante non pasticciare con gli id e lascia tutto com'è.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.