Bug #83704 | Invalid default value for TIMESTAMP DEFAULT CURRENT_TIMESTAMP column | ||
---|---|---|---|
Submitted: | 5 Nov 2016 13:54 | Modified: | 7 Nov 2016 8:04 |
Reporter: | Romain Riche | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | MySQL Server | Severity: | S2 (Serious) |
Version: | 5.7 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[5 Nov 2016 13:54]
Romain Riche
[5 Nov 2016 15:14]
Romain Riche
to avoid confusion on the sample code, here is a better one: CREATE TABLE TEST_TABLE (ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP); INSERT INTO TEST_TABLE() VALUES (); CREATE TEMPORARY TABLE TMP_TEST SELECT * FROM (SELECT ts FROM TEST_TABLE) wrap;
[5 Nov 2016 18:48]
MySQL Verification Team
Thank you for the bug report. I couldn't repeat with server with most recent source: miguel@tikal:~/dbs $ ./57c Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.17-log Source distribution PULL: 2016-OCT-14 Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql 5.7 > use test Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql 5.7 > CREATE TABLE TEST_TABLE (ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP); Query OK, 0 rows affected (0.51 sec) mysql 5.7 > INSERT INTO TEST_TABLE() VALUES (); Query OK, 1 row affected (0.08 sec) mysql 5.7 > CREATE TEMPORARY TABLE TMP_TEST SELECT * FROM (SELECT ts FROM TEST_TABLE) wrap; Query OK, 1 row affected (0.03 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql 5.7 > create database test1; Query OK, 1 row affected (0.00 sec) mysql 5.7 > use test1 Database changed mysql 5.7 > CREATE TABLE `TEST_TABLE` (`ts` TIMESTAMP DEFAULT CURRENT_TIMESTAMP); Query OK, 0 rows affected (0.20 sec) mysql 5.7 > INSERT INTO TEST_TABLE() VALUES (); Query OK, 1 row affected (0.00 sec) mysql 5.7 > mysql 5.7 > DROP TEMPORARY TABLE IF EXISTS TMP_TEST; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql 5.7 > CREATE TEMPORARY TABLE TMP_TEST -> SELECT * FROM (SELECT ts FROM TEST_TABLE) wrap; Query OK, 1 row affected (0.03 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql 5.7 >
[7 Nov 2016 4:45]
Romain Riche
I understand it is working for you but it is not on my server 5.7 although working fine on 5.5. Also if I change TIMESTAMP to DATETIME, then no error.. Any idea what's going on here? Thanks
[7 Nov 2016 8:04]
Romain Riche
alright the problem happens when using this sql_mode: SET SESSION sql_mode = 'NO_ZERO_DATE'; Any reason why?