Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Tipos no MySQL:BigInt(20) vs Int(20)


Consulte http://dev.mysql.com/doc/ refman/8.0/en/numeric-types.html

  • INT é um inteiro com sinal de quatro bytes.

  • BIGINT é um inteiro com sinal de oito bytes.

Cada um deles não aceita mais nem menos valores do que podem ser armazenados em seu respectivo número de bytes. Isso significa 2 valores em um INT e 2 valores em um BIGINT .

O 20 em INT(20) e BIGINT(20) significa quase nada. É uma dica para a largura da tela. Não tem nada a ver com armazenamento, nem com o intervalo de valores que essa coluna aceitará.

Praticamente, afeta apenas o ZEROFILL opção:
CREATE TABLE foo ( bar INT(20) ZEROFILL );
INSERT INTO foo (bar) VALUES (1234);
SELECT bar from foo;

+----------------------+
| bar                  |
+----------------------+
| 00000000000000001234 |
+----------------------+

É uma fonte comum de confusão para os usuários do MySQL verem INT(20) e suponha que seja um limite de tamanho, algo análogo a CHAR(20) . Este não é o caso.