`a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
`b` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
`c` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
建表test1。3个字段 a,b,c
insert into test1 VALUES(NULL,NULL,NULL)
插入的时候设置3字段都是 null
然后成功
Affected rows : 1, Time: 0.00sec
mysql datetime设置now()无效的,没有此用法,datetime类型不能设置函数式默认值,只能通过触发器等来搞。
想设置默认值,只能使用timestamp类型,然后默认值设置为:CURRENT_TIMESTAMP
应该用timestamp,建表SQL改动如下:
CREATE TABLE share (id INT(11) PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(100),
addrip VARCHAR(50),
savetime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
other VARCHAR(50)
)
SQL中关键字尽量大写,如果你用SQLyog它会自动把关键字转换为大写;
name是保留字,虽然没有影响,但是不能保证以后没有影响,如果使用关键字、保留字做字段,最好加上``符号包裹,以免出错。所有自己命名的地方,都可以使用``符号包裹;
另外,每个字段最好使用 COMMENT '内容',给每个字段加上注释,这样以后看到的时候不会想不起来字段的含义。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)