日期:2014-05-16  浏览次数:20887 次

如何创建default value是NOW的column?
SQL code

CREATE TABLE `settings` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `k` varchar(200) NOT NULL,
  `v` varchar(2000) DEFAULT NULL,
  `time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `k` (`k`)
) ;



问题:

1、我想把time的默认值设置为NOW(),但是mysql似乎只支持常量默认值。有什么办法吗?

2、我想create trigger,每次更新的时候自动更新time字段,该如何写呢?


------解决方案--------------------
探讨

1、我想把time的默认值设置为NOW(),但是mysql似乎只支持常量默认值。有什么办法吗?

2、我想create trigger,每次更新的时候自动更新time字段,该如何写呢?

------解决方案--------------------
CREATE TABLE `settings` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`k` varchar(200) NOT NULL,
`v` varchar(2000) DEFAULT NULL,
`time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `k` (`k`)
) ;

------解决方案--------------------
探讨

引用:

1、我想把time的默认值设置为NOW(),但是mysql似乎只支持常量默认值。有什么办法吗?

2、我想create trigger,每次更新的时候自动更新time字段,该如何写呢?

这是一个好问题。
iihero>>:
1. 有。使用timestamp类型,而不是datetime类型。如果你用的是datetime类型,可以将列类型改成……