有什么办法将mysql时间类型的某列值设置为null?

解决方案 »

  1.   

    你用的是 timestamp
    是不可以被设置为 NULL的示例(译者注): mysql> CREATE TABLE `tA` (
        ->   `id` int(3) unsigned NOT NULL auto_increment,
        ->     `date1` timestamp(14) NOT NULL,
        ->     `date2` timestamp(14) NOT NULL,
        ->     PRIMARY KEY  (`id`)
        -> ) TYPE=MyISAM;
    Query OK, 0 rows affected (0.01 sec)mysql> INSERT INTO `tA` SET `id` = 1; 
    Query OK, 1 row affected (0.02 sec)# 没有明确地指定第一个 timestamp 列值,该列值被设为插入的当前时刻
    # 没有明确地指定其它的 timestamp 列值,MySQL 则认为插入的是一个非法值,而该列值被设为0mysql> INSERT INTO `tA` VALUES (2, NOW(), NULL);
    Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM `tA`;
    +----+----------------+----------------+
    | id | date1          | date2          |
    +----+----------------+----------------+
    |  1 | 20030503104118 | 00000000000000 |
    |  2 | 20030503104254 | 20030503104254 |
    +----+----------------+----------------+如果你一定要用 NULL 的话,建议改为 DATETIME 类型