Heim  >  Artikel  >  Datenbank  >  mysql默认值不支持函数的问题及设置默认时间_MySQL

mysql默认值不支持函数的问题及设置默认时间_MySQL

WBOY
WBOYOriginal
2016-06-01 13:40:351318Durchsuche

bitsCN.com
mysql默认值不支持函数的问题及设置默认时间 Java代码  由于MySQL目前字段的默认值不支持函数,所以以  create_time datetime default now()  的形式设置默认值是不可能的。  
 代替的方案是使用TIMESTAMP类型代替DATETIME类型。  TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作。   如果有多个TIMESTAMP列,只有第一个自动更新。    自动更新第一个TIMESTAMP列在下列任何条件下发生:     1. 列值没有明确地在一个INSERT或LOAD DATA INFILE语句中指定。  
    2. 列值没有明确地在一个UPDATE语句中指定且另外一些的列改变值。(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。)     3. 你明确地设定TIMESTAMP列为NULL.     4. 除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只要将列设为NULL,或NOW()。   另外在5.0以上版本中也可以使用trigger来实现此功能。  create table test_time (   id int(11),   create_time datetime  );  delimiter |  create trigger default_datetime before insert on test_time    for each row       if new.create_time is null then         set new.create_time = now();       end if;|  delimiter ;     Java代码  mysql中如何设置默认时间为当前时间?    把日期类型 选择成timestamp 允许空 就可以了  CREATE TABLE `dtal` (  `uname` varchar(50) NOT NULL,  `udate` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;  而如果要在navicat下操作的话,将字段设置为timestamp,然后默认值写上CURRENT_TIMESTAMP即可  
  bitsCN.com

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn