首頁  >  問答  >  主體

建表的時候 對datetime的報錯,不知道為什麼?

[SQL] create table s7_note

(

  idmediumint unsigned not null auto_increment comment 'Id',

  title varchar(100) not null comment '標題' ,#  title varchar(100) not null comment '標題' ,#  title varchar(100) not null comment '標題' ,#  title varchar(100) not null comment '標題'

  content longtext not null comment '內容',

  addtime datetime not null default current_timestamp comment '新增時間',

  ip int not null   位址 '新增時間',

  ip int not null   位址 '

##  主鍵(id)

)engine=InnoDB 預設字元集utf8 comment '留言表';

#[Err] 1067 - 'addtime 的預設值無效'


###
元曦元曦2639 天前1424

全部回覆(3)我來回復

  • 逸先生

    逸先生2017-08-24 10:38:16

    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的值更換一下就好,最簡單的方式

    回覆
    1
  • 天蓬老师

    天蓬老师2017-08-21 17:18:45

    datetime與current_timestamp,理論上,他們的值是相同的。但是current_timestamp在讀寫時有一個自動轉換的過程,而且它們之間的值範圍也不一樣的。你可以將current_timestamp理解為一個變數也是可以用的,因為它在讀寫時要轉換,可以把它想像成有一個date()函數在背後偷偷的對它進行格式化操作。這時它就變成了一個表達式了。

    建議最好升級一下。或換一個值或常數來初始化datetime。

    回覆
    1
  • 天蓬老师

    天蓬老师2017-08-21 12:00:06

    請升級到MySQL 5.6+

    回覆
    1
  • 元曦

    沒有其它替代辦法麼?

    元曦 · 2017-08-21 14:14:07
  • 取消回覆