WEB开发网
开发学院数据库MySQL MYSQL中怎样设列的默认值为Now()的介绍 阅读

MYSQL中怎样设列的默认值为Now()的介绍

 2008-12-19 11:14:52 来源:WEB开发网   
核心提示: 你可以使用TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作,如果你有多个TIMESTAMP列,MYSQL中怎样设列的默认值为Now()的介绍(3),只有第一个自动更新, 自动更新第一个TIMESTAMP列在下列任何条件下发生:1、列值没有明确地在一个IN

你可以使用TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作。如果你有多个TIMESTAMP列,只有第一个自动更新。 自动更新第一个TIMESTAMP列在下列任何条件下发生:

1、列值没有明确地在一个INSERT或LOAD DATA INFILE语句中指定。

2、列值没有明确地在一个UPDATE语句中指定且另外一些的列改变值。(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。)

3、你明确地设定TIMESTAMP列为NULL.

4、除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只要将列设为NULL,或NOW()。

  CREATE TABLE test (
     'id' INT (3) UNSIGNED AUTO_INCREMENT,
     'date1' TIMESTAMP (14),
     'date2' TIMESTAMP (14),
     PRIMARY KEY('id')
     );
  
  INSERT INTO test (id, date1, date2) VALUES (1, NULL, NULL);
  INSERT INTO test SET id= 2;
  +----+----------------+----------------+
  | id | date1     | date2     |
  +----+----------------+----------------+
  | 1 | 20021114093723 | 20021114093723 |
  | 2 | 20021114093724 | 00000000000000 |
  +----+----------------+----------------+
  ->

第一条指令因设date1、date2为NULL,所以date1、date2值均为当前时间第二条指令因没有设date1、date2列值,第一个TIMESTAMP列date1为更新为当前时间,而二个TIMESTAMP列date2因日期不合法而变为“00000000000000”

上一页  1 2 3 4  下一页

Tags:MYSQL 怎样 默认

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接