MySQL版本区别5.5与5.7之DEFAULT CURRENT_TIMESTAMP
2016-03-21 17:35
756 查看
在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>
而从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>
相关文章推荐
- 解决Default storage engine (InnoDB) is not available导致mysql无法启动的修改办法
- 浅析c#范型中的特殊关键字where & default
- MySQL之Field‘***’doesn’t have a default value错误解决办法
- Default style sheet for HTML 4
- MongoDB错误32-bit servers don't have journaling enabled by default解决方法
- Java8新特性之默认方法(default)浅析
- Java8的default方法详细介绍
- Unable to instantiate default tuplizer [org.hib...
- Linux system startup script for Jenkins(Hudson)
- oracle 服务设置
- struts2.xml中使用chain和redirectAction这两个类型结果(type-result)时,报检查错误(validation)
- ContentValues
- Eclipse中批量改变文件的默认打开方式
- ubuntu防火墙设置
- eclipse使用设置
- Oracle_基本建表语句
- IOS自带的动画效果
- Git 设置
- Eclipse无提示的解决办法 和 内容辅助技巧
- 播放器