建表的时候 对datetime的报错,不知道为什么?
元曦
元曦 2017-08-21 11:52:27
0
3
1385

[SQL] create table s7_note

(

  idmediumint unsigned not null auto_increment comment 'Id',

  title varchar(100) not null comment '标题' ,

  content longtext not null comment '内容',

  addtime datetime not null default current_timestamp comment '添加时间',

  ip int not null  comment 'IP地址',

  主键(id)

)engine=InnoDB 默认字符集 utf8 comment '留言表';

#[Err] 1067 - 'addtime 的默认值无效'


##

元曦
元曦

全部回复(3)
逸先生
create table s7_note
(
  id mediumint unsigned not null auto_increment comment 'Id',
  title varchar(100) not null comment '标题',
  content longtext not null comment '内容',
  addtime datetime not null default '' comment '添加时间',
  ip int not null  comment 'IP地址',
  primary key(id)
)engine=InnoDB default charset utf8 comment '留言表';

#将default的值更换一下就好,最简单的方式

Peter_Zhu

datetime与current_timestamp,理论上来说,他们的值是相同的。但是current_timestamp在读写时有一个自动转换的过程,并且它们之间的取值范围也不一样的。你可以将current_timestamp理解为一个变量也是可以用的,因为它在读写时要进行转换,可以把它想像成有一个date()函数在背后偷偷的对它进行格式化操作。这时它就变成了一个表达式了。

建议最好升级一下。或者换一个值或常量来初始化datetime。

Peter_Zhu

请升级到MySQL 5.6+

  • 回复 没有其它替代办法么?
    元曦 作者 2017-08-21 14:14:07
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!