Bug #73299 | DEFAULT value for PRIMARY KEY column depends on the way to declare it PRIMARY | ||
---|---|---|---|
Submitted: | 16 Jul 2014 14:59 | Modified: | 18 Jul 2014 9:17 |
Reporter: | Valeriy Kravchuk | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | MySQL Server: DDL | Severity: | S2 (Serious) |
Version: | 5.6.19, 5.6.20 | OS: | Any |
Assigned to: | CPU Architecture: | Any | |
Tags: | DDL, DEFAULT, missing manual, primary key |
[16 Jul 2014 14:59]
Valeriy Kravchuk
[16 Jul 2014 18:42]
Peter Laursen
I checked and it is the same with MySQL 5.5.38 -- Peter -- not a MySQL/Oracle person
[18 Jul 2014 9:17]
MySQL Verification Team
Hello Valeriy, Thank you for the bug report and test case. Verified as described. Thanks, Umesh
[18 Jul 2014 9:18]
MySQL Verification Team
// mysql> set session sql_mode=''; Query OK, 0 rows affected (0.00 sec) mysql> create table tnull5 (a int primary key, b int) engine = innodb; Query OK, 0 rows affected (0.37 sec) mysql> show create table tnull5\G *************************** 1. row *************************** Table: tnull5 Create Table: CREATE TABLE `tnull5` ( `a` int(11) NOT NULL, `b` int(11) DEFAULT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.02 sec) mysql> mysql> create table tnull6 (a int, b int, primary key(a)) engine = innodb; Query OK, 0 rows affected (0.30 sec) mysql> show create table tnull6\G *************************** 1. row *************************** Table: tnull6 Create Table: CREATE TABLE `tnull6` ( `a` int(11) NOT NULL DEFAULT '0', `b` int(11) DEFAULT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec) mysql> mysql> select @@sql_mode, version()\G *************************** 1. row *************************** @@sql_mode: version(): 5.6.20-enterprise-commercial-advanced-log 1 row in set (0.03 sec)
[18 Jul 2014 9:25]
MySQL Verification Team
// 5.7.4 mysql> set session sql_mode=''; Query OK, 0 rows affected (0.00 sec) mysql> create table tnull5 (a int primary key, b int) engine = innodb; Query OK, 0 rows affected (0.27 sec) mysql> show create table tnull5\G *************************** 1. row *************************** Table: tnull5 Create Table: CREATE TABLE `tnull5` ( `a` int(11) NOT NULL, `b` int(11) DEFAULT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec) mysql> mysql> create table tnull6 (a int, b int, primary key(a)) engine = innodb; Query OK, 0 rows affected (0.28 sec) mysql> show create table tnull6\G *************************** 1. row *************************** Table: tnull6 Create Table: CREATE TABLE `tnull6` ( `a` int(11) NOT NULL, `b` int(11) DEFAULT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec) mysql> mysql> select @@sql_mode, version()\G *************************** 1. row *************************** @@sql_mode: version(): 5.7.4-m14-log 1 row in set (0.00 sec)