当前位置: 首页 > 图文教程 > 数据库 > MYSQL > mysql 设置默认的时间值

MYSQL
轻松掌握如何从命令行启动mysqld服务器
教你快速掌握怎样在Windows下升级MySQL
解析:安装 MySQL时如何选择安装软件包
解析:快速的掌握 MySQL支持的操作系统
MySQL环境下导入数据时是否需要禁用索引
配置高可用性的MySQL服务器负载均衡群集
使用ERWin进行基于MySQL数据库的物理设计
数据库应用经验:如何简单安装MySQL数据库
DBA应当了解的MySQL客户端程序启动选项
将MySQL 5.0下的数据导入到MySQL 3.23中
讲解MaxDB数据库和MySQL数据库的主要差别
实例讲解如何利用crontab定时备份MySQL
个人经验总结:完全卸载MySQL数据库5.0
如何在Unix系统环境下安装MySQL数据库
适宜做简单搜索的MySQL数据库全文索引
教你在MySQL 5.0以上版本中配置主从库
经验总结:修改MySQL默认密码的具体步骤
将后台数据从Berkeley的文件DB转到MySQL
详细介绍查询优化技术在现实系统中的运用
MySQL数据库中对前端和后台进行系统优化

MYSQL 中的 mysql 设置默认的时间值


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 201 ::
收藏到网摘: n/a

由于MySQL目前字段的默认值不支持函数 所以以
复制代码 代码如下:

create_time datetime default now()

的形式设置默认值是不可能的。
代替的方案是使用TIMESTAMP类型代替DATETIME类型。
CURRENT_TIMESTAMP :当我更新这条记录的时候,这条记录的这个字段不会改变。
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP :当我更新这条记录的时候,这条记录的这个字段将会改变。即时间变为了更新时候的时间。(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。)如果有多个TIMESTAMP列,只有第一个自动更新。
TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作。
如果有多个TIMESTAMP列,只有第一个自动更新。
自动更新第一个TIMESTAMP列在下列任何条件下发生:
列值没有明确地在一个INSERT或LOAD DATA INFILE语句中指定。
列值没有明确地在一个UPDATE语句中指定且另外一些的列改变值。(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。)
你明确地设定TIMESTAMP列为NULL.
除第一个以外的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 ;