O
DEFAULT CURRENT_TIMESTAMP
suporte para um DATETIME
(tipo de dados) foi adicionado no MySQL 5.6. Nas versões 5.5 e anteriores, isso se aplicava apenas a
TIMESTAMP
(tipo de dados) colunas. É possível usar um
BEFORE INSERT
trigger em 5.5 para atribuir um valor padrão a uma coluna. DELIMITER $$
CREATE TRIGGER ...
BEFORE INSERT ON mytable
FOR EACH ROW
BEGIN
IF NEW.mycol IS NULL THEN
SET NEW.mycol = NOW();
END IF;
END$$
collation
usado para a coluna. Agrupamentos que terminam em _ci
não diferenciam maiúsculas de minúsculas. Por exemplo latin1_swedish_ci
não diferencia maiúsculas de minúsculas, mas latin1_general_cs
diferencia maiúsculas de minúsculas.A saída de
SHOW CREATE TABLE foo
mostrará o conjunto de caracteres e o agrupamento para as colunas de tipo de caractere. Isso é especificado em um nível por coluna. O "padrão" especificado no nível da tabela se aplica a novas colunas adicionadas à tabela quando a nova definição de coluna não especifica um conjunto de caracteres. ATUALIZAÇÃO
Kaii apontou que minha resposta sobre "sensibilidade a maiúsculas e minúsculas" lida com valores armazenados em colunas e se as consultas retornarão um valor de uma coluna contendo um valor de
"New"
será retornado com um predicado como "t.col = 'new'"
. Veja a resposta de Kaii sobre identificadores (por exemplo, nomes de tabelas) sendo manipulados de forma diferente (por padrão) no Windows e no Linux.