【发布时间】:2010-11-22 05:47:59
【问题描述】:
我在看一些练习题
假设您刚刚创建了这个表: 创建表时间戳测试( ts1 TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 我INT ); 当您查看它的结构时,您会注意到 TIMESTAMP 列被声明为 NOT NULL。如果插入这些记录会发生什么: mysql> INSERT INTO timestamptest SET ts1=NULL, i=10; mysql> INSERT INTO timestamptest SET ts1=0, i=11; mysql> INSERT INTO timestamptest SET ts1='', i=12;
答案是
只有第一个语句成功,TIMESTAMP 列设置为当前日期和时间。其他两个语句给出错误: mysql> INSERT INTO timestamptest SET ts1=NULL, i=10; 查询正常,1 行受影响(0.00 秒) mysql> INSERT INTO timestamptest SET ts1=0, i=11; 错误 1292 (22007):日期时间值不正确:第 1 行的列 'ts1' 为 '0' mysql> INSERT INTO timestamptest SET ts1='', i=12; 错误 1292 (22007):不正确的日期时间值:第 1 行的列 'ts1' 的''
但是当我尝试插入 ts1=0 时,它会插入一个零值时间戳……答案是否错误?
【问题讨论】: