Having both a Created and Last Updated timestamp columns in MySQL 4.0

前端 未结 11 2186
逝去的感伤
逝去的感伤 2020-11-27 09:19

I have the following table schema;

CREATE TABLE `db1`.`sms_queue` (
  `Id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `Message` VARCHAR(160) NOT NULL DEFAUL         


        
11条回答
  •  鱼传尺愫
    2020-11-27 10:15

    There is a trick to have both timestamps, but with a little limitation.

    You can use only one of the definitions in one table. Create both timestamp columns like so:

    create table test_table( 
      id integer not null auto_increment primary key, 
      stamp_created timestamp default '0000-00-00 00:00:00', 
      stamp_updated timestamp default now() on update now() 
    ); 
    

    Note that it is necessary to enter null into both columns during insert:

    mysql> insert into test_table(stamp_created, stamp_updated) values(null, null); 
    Query OK, 1 row affected (0.06 sec)
    
    mysql> select * from test_table; 
    +----+---------------------+---------------------+ 
    | id | stamp_created       | stamp_updated       |
    +----+---------------------+---------------------+
    |  2 | 2009-04-30 09:44:35 | 2009-04-30 09:44:35 |
    +----+---------------------+---------------------+
    2 rows in set (0.00 sec)  
    
    mysql> update test_table set id = 3 where id = 2; 
    Query OK, 1 row affected (0.05 sec) Rows matched: 1  Changed: 1  Warnings: 0  
    
    mysql> select * from test_table;
    +----+---------------------+---------------------+
    | id | stamp_created       | stamp_updated       | 
    +----+---------------------+---------------------+ 
    |  3 | 2009-04-30 09:44:35 | 2009-04-30 09:46:59 | 
    +----+---------------------+---------------------+ 
    2 rows in set (0.00 sec)  
    

提交回复
热议问题