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

    [MySQL] INSERT non cronologico

    Scusate ma ho riscontrato un'anomalia, forse derivante da una mia superficialità, non sò... Io davo per scontato che con un INSERT veniva inserita una nuova riga alla nostra tabella, nello specifico alla fine di questa, quindi all'ultimo posto...

    Adesso che uso un DB da un'applicazione invece, ogni volta che faccio un INSERT la riga mi viene inserita in alto.... Di per se non creerebbe un problema, il fatto è che le ultime 25 corrispondenze mi vengono mostrate nell'applicazione, e se me lo mette in alto va a finire che a lungo andare sicuramente perderò la visualizzazione di qualche riga...

    C'è un modo per fare un INSERT e specificare di inserirlo proprio a FINE TABELLA?

    Grazie...

  2. #2
    nella tabella MyISAM l'ordine di inserimento e' per definizione non ordinato (random). Il record viene inserito fisicamente nel primo spazio utile trovato nel corrispondente file. Quindi se inserisci e poi rimuovi dei record oppure aggiornando con update aumenti o diminuisci la dimensione dei record potresti creare spazi liberi che verranno poi occupati in modo del tutto casuale.

    per l'ordinamento dei record visualizzati devi usare ORDER BY [asc|desc] su un campo che abbia un ordine progressivo per esempio una data oppure un id auto incrementale.

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

  3. #3
    Perfetto, grazie mille!!!
    C'è un modo particolare per inserire il campo ID autoincrementale, oppure me ne occupo io nella mia applicazione?

  4. #4
    Originariamente inviato da Gil1688
    Perfetto, grazie mille!!!
    C'è un modo particolare per inserire il campo ID autoincrementale, oppure me ne occupo io nella mia applicazione?
    alla creazione della tabella oppure con un alter table successivo puoi avere la chiave primaria auto-increment che se ometti il valore (quindi NULL) all'INSERT assegnera' in modo automatico un valore numerico progressivo a questo indice.

    dai anche una lettura alla seguente guida:

    http://database.html.it/guide/leggi/87/guida-mysql/
    http://database.html.it/guide/lezion...ase-e-tabelle/

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

  5. #5
    Questo comando:
    codice:
    ALTER TABLE xxx ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (id);
    mi è stato davvero utilissimo!
    grazie mille, anche per avermi indirizzato alle guide; pur avendo studiato già l'sql all'università questa opportunità non la conoscevo

    Dubbio perciò ampiamente risolto

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