表中的第一个TIMESTAMP列(如果未声明为NULL或显示DEFAULT或ON UPDATE子句)将自动分配DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP属性
第一个之后的TIMESTAMP列(如果未声明为NULL或显示DEFAULT子句)将自动分配DEFAULT '0000-00-00 00:00:00'(零时间戳),这不满足sql_mode中的NO_ZERO_DATE而报错。
注:sql_mode有两种,一种是空值,一种是严格模式,会给出很多默认设置。在MySQL5.7之后默认使用严格模式。
本文深入解析了MySQL中TIMESTAMP列的自动分配特性,特别是当SQL_MODE设置为严格模式时,对于TIMESTAMP列值的处理规则。详细解释了第一个TIMESTAMP列如何被分配为DEFAULTCURRENT_TIMESTAMP和ONUPDATE CURRENT_TIMESTAMP,以及后续TIMESTAMP列如何被分配为默认零时间戳,导致在NO_ZERO_DATE模式下报错。
863

被折叠的 条评论
为什么被折叠?



