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

    [Mysql] Informazioni su formattazione tabelle inaspettata

    Salve a tutti,
    ho creato un sito web in php e mysql però oggi mi sono accorto di una cosa totalmente inaspettata. Ho una tabella con un id mediumint not null auto_increment che fino a qualche giorno fa registrava un valore = a 2. Dopo vari delete di query (quindi non truncate della tabella) ho svuotato la tabella, ma la cosa strana è che dopo alcuni giorni da questa procedura, quando ho inserito un nuovo valore nella tabella, l'id è tornato ad 1. Ora vorrei sapere se mysql ha qualche formattazione automatica delle tabelle vuote, o qualcosa che potrebbe aver causato questo problema. Ricordo che la tabella è rimasta vuota per almeno un giorno e mezzo.
    Ci tengo a dire anche che ho effettuato 3 query al database registrando 3 valori e portando l'id a 3 e ho rieffettuato il delete delle 3 righe risvuotando la tabella, ma questa volta quando ho reinserito un valore nella tabella, l'id è andato a 4 come dovrebbe essere.
    Grazie mille a tutti.

  2. #2
    mediumint e' di 3 byte e quindi contiene da -8.388.608 a +8.388.607 percio' quando raggiungi la capienza massima di 3 byte (tutti a 1) vai in overflow ed il contatore ti torna a 0. in realta' andresti a posizionare un 1 sul quarto byte che non e' nel range e quindi sparisce il valore max raggiunto. Se imposti il campo UNSIGNED puoi raddoppiare il valore contenuto, 16 mega invece di -8 +8

    Usa INT UNSIGNED (4 byte oltre 4 gigabit) ma rimane da capire come possa raggiungere un valore cosi' elevato in poco tempo. Verrebbe da pensare ad un loop di inserimenti. L'auto increment avanza sempre e non si resetta se non con il truncate table.

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

  3. #3
    Grazie mille per la risposta... credo allora che sia stato fatto un truncate involontario, forse proprio da parte mia (anche se non ricordo) della tabella... cmq vedrò come va adesso... se va tutto bene per un paio di giorni allora ho effettuato io involontariamente dal phpmyadmin un truncate della tabella, altrimenti dovrò rivedermi benissimo il codice, anche se di truncate non nè ho trovati in prima analisi...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    anche un alter/create table può modificare il prossimo valore.

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.