在MySQL 5.6中添加了 DEFAULT CURRENT_TIMESTAMP
对 DATETIME
(数据类型)的支持。
在5.5和更早版本中,这仅适用于 TIMESTAMP
(数据类型)列。
可以使用 BEFORE INSERT
5.5中的触发器为列分配默认值。
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
该列所使用的。结尾的排序规则 _ci
不区分大小写。例如latin1_swedish_ci
,不区分大小写,但是 latin1_general_cs
区分大小写。
来自的输出 SHOW CREATE TABLE foo
将显示字符类型列的字符集和排序规则。在每个列级别指定。当新列定义未指定字符集时,在表级别指定的“默认”适用于添加到表中的新列。
更新
Kaii指出,我对“区分大小写”的回答涉及存储在列中的值,并且查询是否将从包含的值的列中
"New"返回值将返回谓词like
"t.col ='new'"。
请参见Kaii关于 标识符 (例如表名)在Windows上与Linux上的处理方式不同(默认情况下)的答案。



