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

Configurando uma coluna como timestamp no ambiente de trabalho MySql?


EDITAR

A partir do MySQL 5.6.4, tipo de dados TIMESTAMP(n) especifica n (0 a 6) dígitos decimais de precisão para segundos fracionários.

Antes do MySQL 5.6, o MySQL não suportava segundos fracionários armazenados como parte de um TIMESTAMP tipo de dados.

Referência:https://dev.mysql.com/doc /refman/5.6/en/fractional-seconds.html

Não precisamos especificar um modificador de comprimento em um TIMESTAMP . Podemos apenas especificar TIMESTAMP por si próprio.

Mas esteja ciente de que o primeiro TIMESTAMP coluna definida na tabela está sujeita a inicialização e atualização automáticas. Por exemplo:
create table foo (id int, ts timestamp, val varchar(2));

show create table foo; 

CREATE TABLE `foo` (
`id` INT(11) DEFAULT NULL,
`ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`val` VARCHAR(2) DEFAULT NULL
) 

O que vai nos parênteses após um tipo de dados depende de qual é o tipo de dados, mas para alguns tipos de dados, é um modificador de comprimento.

Para alguns tipos de dados, o modificador de comprimento afeta o comprimento máximo dos valores que podem ser armazenados. Por exemplo, VARCHAR(20) permite armazenar até 20 caracteres. E DECIMAL(10,6) permite valores numéricos com quatro dígitos antes do ponto decimal e seis depois, e faixa efetiva de -9999,999999 a 9999,999999.

Para outros tipos, o modificador de comprimento não afeta o intervalo de valores que podem ser armazenados. Por exemplo, INT(4) e INT(10) são ambos inteiros e ambos podem armazenar o intervalo completo de valores permitidos para o tipo de dados inteiro.

O que esse modificador de comprimento faz nesse caso é apenas informativo. Ele especifica essencialmente uma largura de exibição recomendada. Um cliente pode usar isso para determinar quanto espaço reservar em uma linha para exibir valores da coluna. Um cliente não precisa fazer isso, mas essa informação está disponível.

EDITAR

Um modificador de comprimento não é mais aceito para o TIMESTAMP tipo de dados. (Se você estiver executando uma versão muito antiga do MySQL e ela for aceita, ela será ignorada.)