1. 程式人生 > >MySQL版本區別5.5與5.7之DEFAULT CURRENT_TIMESTAMP

MySQL版本區別5.5與5.7之DEFAULT CURRENT_TIMESTAMP

在5.5到5.6.4版本里,對於DEFAULT CURRENT_TIMESTAMP子句,只能TIMESTAMP型別列上指定。

而從5.6.5開始(也包括5.7),DEFAULT CURRENT_TIMESTAMP子句可以指定到TIMESTAMP或者DATETIME型別列上。

比如在5.5中:

mysql> select version();
+------------+
| version()  |
+------------+
| 5.5.48-log |
+------------+
1 row in set (0.00 sec)


mysql> use test;
Database changed
mysql> create table t1(id int, dt timestamp not null DEFAULT CURRENT_TIMESTAMP, dt1 datetime not null DEFAULT CURRENT_TIMESTAMP);
ERROR 1067 (42000): Invalid default value for 'dt1'
mysql>

而在5.7中:

mysql> select version();
+------------+
| version()  |
+------------+
| 5.7.11-log |
+------------+
1 row in set (0.00 sec)


mysql> use test;
Database changed
mysql> create table t1(id int, dt timestamp not null DEFAULT CURRENT_TIMESTAMP, dt1 datetime not null DEFAULT CURRENT_TIMESTAMP);
ERROR 1050 (42S01): Table 't1' already exists
mysql> drop table t1;
Query OK, 0 rows affected (0.38 sec)


mysql> create table t1(id int, dt timestamp not null DEFAULT CURRENT_TIMESTAMP, dt1 datetime not null DEFAULT CURRENT_TIMESTAMP);
Query OK, 0 rows affected (0.32 sec)


mysql> desc t1;
+-------+-----------+------+-----+-------------------+-------+
| Field | Type      | Null | Key | Default           | Extra |
+-------+-----------+------+-----+-------------------+-------+
| id    | int(11)   | YES  |     | NULL              |       |
| dt    | timestamp | NO   |     | CURRENT_TIMESTAMP |       |
| dt1   | datetime  | NO   |     | CURRENT_TIMESTAMP |       |
+-------+-----------+------+-----+-------------------+-------+
3 rows in set (0.10 sec)


mysql>
--------------------- 
作者:q3dxdx 
來源:CSDN 
原文:https://blog.csdn.net/q3dxdx/article/details/50948360 
版權宣告:本文為博主原創文章,轉載請附上博文連結!