Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Riordinare tabella MySQL

    Ho una tabella MySQL che ovviamente incrementa l'ID ad ogni nuovo inserimento...
    Ho cancellato vecchi inserimenti e per fare il pignolo ho modificato l'ID agli ultimenti inserimenti dandogli un nuovo ID per coprire quelli cancellati... mi spiego meglio:

    1 ciao
    2 buonasera
    3 buongiorno
    4 buon natale

    cancello buongiorno
    aggiungo buon ferragosto, diventa:

    1 ciao
    2 buonasera
    4 buon natale
    5 buon ferragosto

    modifico ferragosto per fare il pignolo

    1 ciao
    2 buonasera
    4 buon natale
    3 buon ferragosto

    fino a qui tutto ok... ora però se entro nella tabella la trovo comunque ordinata non per ID ma per ordine di inserimento, nulla di grave... ma mi chiedevo se esiste una funzione per resettare questo ordine e far tornare tutto in linea per ID (non la visualizzazzione intendo, ma la struttura vera e propria).

    Grazie

  2. #2
    Specifico che ogni volta ovviamente modifico l'autoincrement sottraendo le righe cancellate, altrimenti i nuovi inserimenti me li farebbe scalati lasciando ID liberi.

  3. #3

  4. #4
    Quindi non esiste nessun metodo mi pare di capire?
    E per ricreare totalmente gli indici in ordine sequenziale? tanto non mi importa se per un record cambia l'indice, basta che siano tutti sequenziali e ordinati bene.

    Altrimenti svuotando la tabella suppongo che si resetti tutto no? ma poi ovviamente dovrei riempirla nuovamente tutta.

  5. #5
    Utente di HTML.it L'avatar di alengy
    Registrato dal
    Oct 2005
    Messaggi
    31
    Su access e sql server si può fare (nel primo caso con la compattazione db mentre nel secondo con un'istruzione T-SQL dedicata).

    In MySql non saprei..

  6. #6
    Originariamente inviato da Ajeje Brazof
    Quindi non esiste nessun metodo mi pare di capire?
    E per ricreare totalmente gli indici in ordine sequenziale? tanto non mi importa se per un record cambia l'indice, basta che siano tutti sequenziali e ordinati bene.

    Altrimenti svuotando la tabella suppongo che si resetti tutto no? ma poi ovviamente dovrei riempirla nuovamente tutta.
    e' un lavoro inutile. nelle tabelle tutti i record hanno una collocazione fisica random per definizione e vengono identificati da un id univoco. Quindi senza un ORDER BY i record ti sono visualizzati tipicamente in modo casuale. Il fatto che tu li vuoi vedere ordinati dipende solo dall'istruzione e non da come sono posizionati fisicamente nel file.

    Se vuoi vederli numerati con progressioni consecutive numerali tu al momento dell'estrazione, o con una variabile SQL oppure con una numerazione in php. un esempio con le variabili:

    codice:
    set @num = 0;
    
    select *, @num := @num + 1 as num
    from tabella
    order by tuo_campo;

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Grazie mille, gentilissimo

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 © 2024 vBulletin Solutions, Inc. All rights reserved.