如题,如下,先执行一段建表语句如下;
mysql> create table testB (
    ->   id   int PRIMARY KEY,
    ->   val  varchar(10),
    ->   dt TIMESTAMP
    -> );
Query OK, 0 rows affected (0.08 sec)执行正常没有问题,而且打开表后往表中插入数据时dt字段的自动插入当前时间。
下面来了,我给这个表再添加一个字段,执行如下命令
mysql> alter table testB add bb TIMESTAMP;
Query OK, 1 row affected (0.11 sec)
Records: 1  Duplicates: 0  Warnings: 0
此命令执行也正确,但是当我打开表后往表中插入数据后,新添加的字段bb居然默认是0000-00-00 00:00:00
有是什么问题???
我想让后面新添加的字段和前面建表时的字段dt一样自动插入当前时间值,但是我单独用一条添加新字段的命令来添加字段后得到的效果和建表时建的字段dt是不一样的呢?求解MySQLSQL行业数据Timestamp

解决方案 »

  1.   

    你添加的类型是TimeSTAmp类型,当然是默认是这样的啦!
      

  2.   

    你理解错我的意思了,字段dt和bb的类型都是TimeSTAmp,但是插入记录后这两个字段值为什么不一样?dt会把当前时间插入,bb永远插入000000.
      

  3.   

    mysql help
    CREATE TABLE t (
        ts1 TIMESTAMP DEFAULT 0,
        ts2 TIMESTAMP DEFAULT CURRENT_TIMESTAMP
                      ON UPDATE CURRENT_TIMESTAMP);
      

  4.   

    mysql5.6一下版本一个表只能有一列是timestamp类型
      

  5.   

    一个表中仅有一个 timestamp 的列会被设默认值。
      

  6.   

    mysql只有第一个timestamp类型的才自动初始化和自动更新,如果想让其他的timestamp也能自动初始化和自动更新只有通过触发器来实现啦!
      

  7.   

    alter table t  add column bb timestamp; delimiter |
     create trigger bi before insert on t for each row
     begin
     set new.bb = now();
     end;
     |
     delimiter ;