本文章來給各位同學介紹關于mysql 5.5與5.6 timestamp 字段 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP的區別,希望此教程對各位有幫助.
mysql5.6數據庫,代碼如下:
- [BIGHD](root@127.0.0.1) [cm]> SELECT version();
- +------------+
- | version() |
- +------------+
- | 5.6.13-log |
- +------------+
- 1 ROW IN SET (0.02 sec)
- [BIGHD](root@127.0.0.1) [cm]> ALTER TABLE s__uk ADD `last_op_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
- Query OK, 0 ROWS affected (0.99 sec)
- Records: 0 Duplicates: 0 Warnings: 0
- [BIGHD](root@127.0.0.1) [cm]> SELECT id, last_op_time FROM s__uk LIMIT 1;
- +----+---------------------+
- | id | last_op_time |
- +----+---------------------+
- | 1 | 2013-10-10 10:17:57 |
- +----+---------------------+
- 1 ROW IN SET (0.00 sec)
mysql5.5數據庫,代碼如下:
- (root@localhost) [cm]> SELECT version();
- +------------+
- | version() |
- +------------+
- | 5.5.15-log |
- +------------+
- 1 ROW IN SET (0.00 sec)
- (root@localhost) [cm]> ALTER TABLE s__uk ADD `last_op_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
- Query OK, 2523 ROWS affected (0.99 sec)
- Records: 2523 Duplicates: 0 Warnings: 0
- (root@localhost) [cm]> SELECT last_op_time FROM s__uk LIMIT 1;
- +---------------------+
- | last_op_time |
- +---------------------+
- | 0000-00-00 00:00:00 |
- +---------------------+
- 1 ROW IN SET (0.00 sec)
另外,有沒有考慮過如果只更新這個字段會怎樣?會是指定的時間,還是自動生成的時間?代碼如下:
- (root@localhost) [cm]> UPDATE s__uk SET last_op_time='2012-12-12 00:00:00' WHERE id=1;
- Query OK, 1 ROW affected (0.07 sec)
- ROWS matched: 1 Changed: 1 Warnings: 0
- (root@localhost) [cm]> SELECT id, last_op_time FROM s__uk LIMIT 1;
- +----+---------------------+ Vevb.com
- | id | last_op_time |
- +----+---------------------+
- | 1 | 2012-12-12 00:00:00 |
- +----+---------------------+
- 1 ROW IN SET (0.01 sec)
猜對了木有?
PS:如何判斷字段中是否有多字節字符(比如中文)?
CHARACTER_LENGTH(value) = length(value) 則不包含多字節字符.
length為字節Bytes長度,CHARACTER_LENGTH為字符characters長度.
PS2:mongodb find() 之后美化/格式化輸出的函數是:db.tbl.find().pretty()
新聞熱點
疑難解答