mySQl建表时怎样才能使datetime型字段默认值为插入值的时刻

使用TIMESTAMP列类型,  
   
  列类型                   显示格式      
  TIMESTAMP(14)     YYYYMMDDHHMMSS      
  TIMESTAMP(12)     YYMMDDHHMMSS      
  TIMESTAMP(10)     YYMMDDHHMM      
  TIMESTAMP(8)       YYYYMMDD      
  TIMESTAMP(6)       YYMMDD      
  TIMESTAMP(4)       YYMM      
  TIMESTAMP(2)       YY      
   
   
  它会自动地用当前的日期和时间标记你的INSERT或UPDATE的操作。如果一张表中有多个TIMESTAMP列,只有第一个自动更新。  
   
  在下列情况下MySQL会自动更新第一个TIMESTAMP列为当前系统时间  
   
  1、当一个INSERT、UPDATE或LOAD   DATA   INFILE语句中没有明确地指定其值时。    
   
  (注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。看附例)    
   
  2、你明确地设定TIMESTAMP列为NULL.    
   
  3、除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只要将列设为NULL,或NOW()。  
   
  例:  
   
  CREATE   TABLE   catv.call   (  
      callintime   timestamp(14)   ,  
      calldh   varchar(10)   DEFAULT   '',  
      callnm   varchar(10)   DEFAULT   '',  
      calldq   varchar(20)   NOT   NULL   DEFAULT   ''   ,  
      callinnum   varchar(14)   DEFAULT   '',  
      callinvoice   varchar(28)   DEFAULT   '',  
      recallnum   varchar(14)   DEFAULT   '',  
      pass   enum('True','False')   NOT   NULL   DEFAULT   'False'   ,  
      KEY   callinnum   (callinnum),  
      KEY   callintime   (callintime)  
  )  
   
  UPDATE   call   SET   callintime=callintime,pass="True"      
   
  上一条指令会将表中所有的记录   pass   字段设为   True     而其它的字段值均不会改变!   
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值