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

    MySQL 5: Valore di AUTO_INCREMENT [engine: MyISAM]

    Buondì,

    volevo esporre un mio quesito in merito al valore da assegnare ad AUTO_INCREMENT nelle tabelle MyISAM.

    Per una migliore comprensione posto di seguito la struttura di una tabella:

    Codice PHP:
    CREATE TABLE `user` (
    `
    user_idsmallint(4unsigned NOT NULL auto_increment,
    `
    user_namevarchar(13) default NULL,
    `
    user_mailvarchar(50) default NULL,
    `
    user_admintinyint(1unsigned NOT NULL default '0',
    `
    user_moderatortinyint(1unsigned NOT NULL default '0',
    PRIMARY KEY (`user_id`)
    ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=?? 
    Non sò in base a cosa devo assegnare il valore di AUTO_INCREMENT vicino alla dichiarazione del CHARSET, guardando alcuni tutorial trovo valori come 14 o 2 ma non sono riuscito a capire in base a cosa sono assegnati.

    Inoltre ne approfitto per cercare conferma di una mia ipotesi (forse errata) :
    quando scelgo il tipo del campo come può essere Tinyint oppure TEXT (o qualunque altro) il valore indicato tra parentesi indica il numero massimo di valori che può avere oppure il numero di cifre (o lettere) che il campo può avere?

    esempio:
    `admin`tinyint(1) unsigned NOT NULL -> admin, valori accettati 0 e 1 (perchè 1 è il valore massimo) oppure tutti i valori da 0 a 9 perchè di UNA cifra?
    Lo stesso per un campo come TEXT:
    `message` text(4) -> memoria occupata 4+2 byte, lunghezza totale: 6553 (perchè quattro cifre) oppure altro valore?

    Grazie mille

    Buona giornata a tutti.

  2. #2
    il valore di autoincrement definisce il punto in cui posizionare il prossimo valore indice. Se lo ometti prendera' il primo disponibile.

    per i campi numerici il valore tra parentesi indica il numero dei digit da visualizzare. Nulla a che fare con la dimensione del campo che per gli interi e' di dimensione prefissata. Serve principalmente per lo zerofill (n. di zeri prima del valore immesso) poiche' la capacita' del campo e' comunque sempre identica. tinyint = 1 byte e percio' uguale a 0 - 255 se unsigned anche se metti tinyint(1).

    per maggiori dettagli:

    http://dev.mysql.com/doc/refman/5.0/...uirements.html

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

  3. #3
    Originariamente inviato da piero.mac
    il valore di autoincrement definisce il punto in cui posizionare il prossimo valore indice. Se lo ometti prendera' il primo disponibile.

    per i campi numerici il valore tra parentesi indica il numero dei digit da visualizzare. Nulla a che fare con la dimensione del campo che per gli interi e' di dimensione prefissata. Serve principalmente per lo zerofill (n. di zeri prima del valore immesso) poiche' la capacita' del campo e' comunque sempre identica. tinyint = 1 byte e percio' uguale a 0 - 255 se unsigned anche se metti tinyint(1).

    per maggiori dettagli:

    http://dev.mysql.com/doc/refman/5.0/...uirements.html
    Ti ringrazio per la risposta precisa,
    ancora non ho una buona idea di come funzioni auto_increment ma almeno ho capito a cosa serve e ora ho chiaro anche il concetto degli indici tra parentesi per la dichiarazione dei tipi.

    Mille grazie ancora,

    Ciao Ciao

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.