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

msq 设置默认值问题
mysql 中 建表的时候 NOT NULL字段能设置默认值吗? 
如 
CREATE TABLE usertext ( 
-- 必填信息 
id INT NOT NULL AUTO_INCREMENT , -- 用户ID 
register_time DATETIME NOT NULL default now() , -- 注册时间 
PRIMARY KEY (id) , 
KEY `idx_username` (`username`) 

TYPE=InnoDB DEFAULT CHARSET=utf8 COMMENT '论坛用户表'; 
红色部分是错误的 那么能不能把时间字段的默认值设置为当前系统时间呢? 
该如何写?

------解决方案--------------------
没有

使用now()在sql中控制。
------解决方案--------------------
到现在为致还没有在mysql 中接触过mysql 的now 方法,我知道可以获得DB server 时间的,可没有用过now 方法
------解决方案--------------------
register_time timestamp NOT NULL default current_timestamp , -- 注册时间
------解决方案--------------------
DEFAULT子句用于为列指定一个默认值。默认值必须为一个常数,不能为一个函数或一个表达式,有一种情况例外。
例如,一个日期列的默认值不能被设置为一个函数,如NOW()或CURRENT_DATE。
不过,有一种例外,您可以对TIMESTAMP列指定CURRENT_TIMESTAMP为默认值。

请参见11.3.1.1节,“MySQL 4.1中的TIMESTAMP属性”。

------解决方案--------------------


四楼


==== 思想重于技巧 ====