Le DEFAULT CURRENT_TIMESTAMP
prise en charge d'un DATETIME
(type de données) a été ajouté dans MySQL 5.6.
Dans les versions 5.5 et antérieures, cela ne s'appliquait qu'à TIMESTAMP
(type de données) colonnes.
Il est possible d'utiliser un BEFORE INSERT
trigger en 5.5 pour attribuer une valeur par défaut à une colonne.
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 sensibilité à la casse (des requêtes sur des valeurs stockées dans des colonnes) est due à la collation
utilisé pour la colonne. Classements se terminant par _ci
sont insensibles à la casse. Par exemple latin1_swedish_ci
est insensible à la casse, mais latin1_general_cs
est sensible à la casse.
La sortie de SHOW CREATE TABLE foo
affichera le jeu de caractères et le classement pour les colonnes de type de caractères. Ceci est spécifié au niveau de chaque colonne. La "valeur par défaut" spécifiée au niveau de la table s'applique aux nouvelles colonnes ajoutées à la table lorsque la nouvelle définition de colonne ne spécifie pas de jeu de caractères.
MISE À JOUR
Kaii a souligné que ma réponse concernant la "sensibilité à la casse" traite des valeurs stockées dans les colonnes et si les requêtes renverront une valeur à partir d'une colonne contenant une valeur de "New"
sera retourné avec un prédicat comme "t.col = 'new'"
.
Voir la réponse de Kaii concernant les identifiants (par exemple, les noms de table) étant gérés différemment (par défaut) sous Windows que sous Linux.