注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

@fc_lamp

关注Web应用解决方案MySql/PHP/Python一盏名为"飞川"的灯~

 
 
 

日志

 
 

关于MySQL timestamp 类型字段  

2012-12-12 10:21:00|  分类: Web技术-Mysql |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
恩,MySQL基本的字段类型可参看:http://fc-lamp.blog.163.com/blog/static/17456668720109185200217/

这里说一下mysql 的timestamp 字段的使用规则。

定义规则:
 
1、timestamp字段有三个属性:
a)是否允许NULL。默认为not null。

b)默认值 。可以设定为default CURRENT_TIMESTAMP 或default 某个常量。 
  若定义时缺省,对于第一个出现的timestamp字段,默认为CURRENT_TIMESTAMP, 对于其他timestamp字段,默认为 '0000-00-00 00:00:00'。 Default可以指定为null,前提是本字段允许null。
  比如声明 field2 timestamp null default null。

c)On update CURRENT_TIMESTAMP。是否在更新其他字段时自动将该timestamp字段修改为当前时间戳。对于第一个出现的timestamp字段,默认为On update CURRENT_TIMESTAMP, 对于其他timestamp字段,没有此行为。
 
2、default CURRENT_TIMESTAMP 和 On update CURRENT_TIMESTAMP 可以同时修饰一个列。
   被这两个属性任意一个修饰的列定义为timestamps_with_niladic, 一个表中最多只能存在一个定义为timestamps_with_niladic的列。若超过1个,则建表失败。
 

以上是定义规则,用于定义建表行为。建表完成以后可以用show create table xxx 来验证上述规则。有了表定义后,我们来看timestamp的使用规则。
 
使用规则

1、在insert或update语句中设置timestamp字段为null时
 a) 若该列为not null,则设置为当前时间戳

 b) 若该列为允许null, 则设置为null
 
2、在insert时若缺省,(insert 语句不指定该列的值),则等效于赋默认值。具体值由default部分决定。
3、若一个列有  On update CURRENT_TIMESTAMP 属性,修改本行其他列时会将此timestamp列的值修改为当前时间戳。

以上来源于:http://dinglin.iteye.com/blog/1657622




FIND_IN_SET(str,strlist) (作用类似PHP中的strpos函数)

假 如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则   FIND_IN_SET() 函数被优化,使用比特计算。如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。

mysql> SELECT FIND_IN_SET('b','a,b,c,d');

         > 2

源:http://www.phplover.cn/post/432.html
  评论这张
 
阅读(327)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017