2011-10-15 13 views

risposta

10

Un tipico INT utilizza 4 byte, quindi è possibile memorizzare i numeri:
firmata: -2147483648 to 2147483647
Unsigned: 0 to 4294967295

Un BIGINT utilizza 8 byte, quindi può memorizzare i numeri:
Firmato: -9223372036854775808 to 9223372036854775808
Unsigned: 0 to 18446744073709551615

0

int(11) accetta solo le prime 11 cifre. il resto di loro sarà scartato. È possibile modificare la tabella e modificare il tipo di dati ID da int a bigint.

Spero che questo aiuti.

5

Questo numero (01.231.) non ha assolutamente nulla a che fare con il range di colonne - [SIGNED] INTEGER definisce un intervallo (-2147483648 - 2147483647).

Il numero tra parentesi viene utilizzato solo se combinato con ZEROFILL. Quindi definisce la "lunghezza" del numero visualizzato, es. il valore 275552 verrà restituito come stringa00000275552.

0

Come altri hanno già detto, non otterrete 11 cifre. Quando raggiungi il valore massimo, tutti i valori che lo superano saranno trattati come se fossero il valore massimo. Nel caso dei campi AUTO_INCREMENT, causerà tutti gli inserti in futuro a fallire fino a quando si cambia il tipo di colonna ad un BIGINT:

ERROR 1062 (23000): Duplicate entry '4294967295' for key 1

0

Quando si raggiunge il valore massimo, tutti i valori superiori che saranno trattati come se erano il valore massimo. Nel caso dei campi auto_increment, causerà il fallimento di tutti gli inserimenti futuri finché non si cambia il tipo di colonna in BIGINT:

Problemi correlati