Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Not a Bug
-
10.2.2
-
Windows 2012 server
Description
When trying to create an innodb table with this settings
CREATE TABLE `__syssequences` (
`systemName` CHAR(50) NOT NULL,
`sequenceName` CHAR(50) NOT NULL,
`sequenceStep` INT(11) DEFAULT '1',
`lastValue` INT(11) DEFAULT '1',
`lastInsert` DATETIME DEFAULT '0000-00-00 00:00:00',
`lastUpdate` DATETIME DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`systemName`,`sequenceName`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED
Can't create table `ezgobx`.`__syssequences` (errno: 140 "Wrong create options")
If I remove ROW_FORMAT=FIXED or set ROW_FORMAT=DEFAULT it works perfect. I used that creation option in mysql 5.6 wihout issues
Attachments
Activity
Field | Original Value | New Value |
---|---|---|
Component/s | Documentation [ 10903 ] | |
Component/s | Storage Engine - InnoDB [ 10129 ] | |
Component/s | Data Definition - Alter Table [ 10114 ] | |
Assignee | Ian Gilfillan [ greenman ] |
Fix Version/s | N/A [ 14700 ] | |
Resolution | Not a Bug [ 6 ] | |
Status | Open [ 1 ] | Closed [ 6 ] |
Workflow | MariaDB v3 [ 78337 ] | MariaDB v4 [ 151229 ] |
InnoDB does not have ROW_FORMAT FIXED. It didn't have it in MySQL 5.6 either.
However, in InnoDB 5.6 (both in MySQL 5.6 and MariaDB 10.0/10.1) innodb_strict_mode=0 by default, that's why the CREATE statement simply issued a warning and assumed COMPACT format instead.
| @@version |
| 5.6.33-debug |
MySQL [test]> show warnings;
| Warning | 1478 | InnoDB: assuming ROW_FORMAT=COMPACT. |
In InnoDB 5.7 (both in MySQL 5.7 and MariaDB 10.2) innodb_strict_mode=1 by default, so both of them fail to create a table with the wrong ROW_FORMAT.
If you want the old behavior, set innodb_strict_mode=0.
greenman,
Maybe it should be explained somehow in the documentation if it hasn't been yet (I couldn't find).
While technically every part of it is documented separately ā supported row formats as well as the new default for the strict mode, ā it might be not easy for users to put it all together.
MySQL, for example, describes it directly at CREATE TABLE page: https://dev.mysql.com/doc/refman/5.7/en/create-table.html