Il DEFAULT CURRENT_TIMESTAMP
supporto per un DATETIME
(tipo di dati) è stato aggiunto in MySQL 5.6.
Nelle versioni 5.5 e precedenti, ciò si applicava solo a TIMESTAMP
colonne (tipo di dati).
È possibile utilizzare un BEFORE INSERT
attivare in 5.5 per assegnare un valore predefinito a una colonna.
DELIMITER $$
CREATE TRIGGER ...
BEFORE INSERT ON mytable
FOR EACH ROW
BEGIN
IF NEW.mycol IS NULL THEN
SET NEW.mycol = NOW();
END IF;
END$$
La distinzione tra maiuscole e minuscole (delle query rispetto ai valori archiviati nelle colonne) è dovuta al collation
utilizzato per la colonna. Collazioni che terminano con _ci
non fanno distinzione tra maiuscole e minuscole. Ad esempio latin1_swedish_ci
non fa distinzione tra maiuscole e minuscole, ma latin1_general_cs
fa distinzione tra maiuscole e minuscole.
L'output di SHOW CREATE TABLE foo
mostrerà il set di caratteri e le regole di confronto per le colonne del tipo di carattere. Questo è specificato a livello di colonna. Il "predefinito" specificato a livello di tabella si applica alle nuove colonne aggiunte alla tabella quando la nuova definizione di colonna non specifica un set di caratteri.
AGGIORNAMENTO
Kaii ha sottolineato che la mia risposta in merito alla "sensibilità tra maiuscole e minuscole" riguarda i valori archiviati all'interno delle colonne e se le query restituiranno un valore da una colonna contenente un valore di "New"
verrà restituito con un predicato come "t.col = 'new'"
.
Vedi la risposta di Kaii sugli identificatori (ad es. i nomi delle tabelle) vengono gestiti in modo diverso (per impostazione predefinita) su Windows rispetto a Linux.