Bug #39413 Incorrect AUTO_INCREMENT value allowed

Submitted: 11 Sep 2008 23:26 Modified: 12 Sep 2008 6:52
Reporter: Peter Zaitsev (Basic Quality Contributor) Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: DDL Severity:S3 (Non-critical)
Version:5.0, 5.1, 6.0 bzr OS:Any
Assigned to: CPU Architecture:Any
Tags: qc

[11 Sep 2008 23:26] Peter Zaitsev
Description:
Auto_Increment in CREATE TABLE or ALTER TABLE allows values larger than type defined for the column:

Note the type for column below is INT while the value is outside of this range. 

How to repeat:
mysql> alter table a1 auto_increment=3147483648;
Query OK, 2 rows affected (0.11 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> show create table a1;
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                     |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------+
| a1    | CREATE TABLE `a1` (
  `i` int(11) NOT NULL auto_increment,
  PRIMARY KEY  (`i`)
) ENGINE=MyISAM AUTO_INCREMENT=3147483648 DEFAULT CHARSET=latin1 |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
[12 Sep 2008 6:52] Sveta Smirnova
Thank you for the report.

Verified as described.
[12 Sep 2008 6:55] Sveta Smirnova
Category changed, because problem is repeatable with InnoDB as well:

CREATE TABLE `a1` (
`i` int(11) NOT NULL auto_increment,
PRIMARY KEY  (`i`)
) ENGINE=InnoDB AUTO_INCREMENT=3147483648 DEFAULT CHARSET=latin1;
show create table a1;
Table   Create Table
a1      CREATE TABLE `a1` (
  `i` int(11) NOT NULL auto_increment,
  PRIMARY KEY  (`i`)
) ENGINE=InnoDB AUTO_INCREMENT=3147483648 DEFAULT CHARSET=latin1
insert into a1 values();
Warnings:
Warning 1264    Out of range value adjusted for column 'i' at row 1
select * from a1;
i
2147483647

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.053 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.