Description:
Hello.
If execute "select insert",
I will report "AUTO_INCREMENT" because not a serial number.
kazushige uratani
How to repeat:
▼Prepare
mysql> CREATE TABLE `tbl_sample` (
-> `id` smallint(5) unsigned NOT NULL DEFAULT '0',
-> `name` varchar(30) DEFAULT NULL,
-> `cnt` tinyint(3) unsigned NOT NULL DEFAULT '0',
-> PRIMARY KEY (`id`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> ALTER TABLE tbl_sample MODIFY id INT AUTO_INCREMENT;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
▼execute "select insert"
mysql> INSERT INTO tbl_sample (name, cnt)
-> SELECT 'sample', '1' FROM dual UNION ALL
SELECT 'sample', '1' FROM dual UNION ALL
-> SELECT 'sample', '1' FROM dual UNION ALL
-> SELECT 'sample', '1' FROM dual UNION ALL
-> SELECT 'sample', '1' FROM dual UNION ALL
SELECT 'sample', '1' FROM dual UNION ALL
-> SELECT 'sample', '1' FROM dual UNION ALL
-> SELECT 'sample', '1' FROM dual UNION ALL
SELECT 'sample', '1' FROM dual UNION ALL
-> SELECT 'sample', '1' FROM dual UNION ALL
-> SELECT 'sample', '1' FROM dual UNION ALL
-> SELECT 'sample', '1' FROM dual UNION ALL
SELECT 'sample', '1' FROM dual; -> SELECT 'sample', '1' FROM dual;
Query OK, 10 rows affected (0.01 sec)
Records: 10 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM tbl_sample;
+----+--------+-----+
| id | name | cnt |
+----+--------+-----+
| 1 | sample | 1 |
| 2 | sample | 1 |
| 3 | sample | 1 |
| 4 | sample | 1 |
| 5 | sample | 1 |
| 6 | sample | 1 |
| 7 | sample | 1 |
| 8 | sample | 1 |
| 9 | sample | 1 |
| 10 | sample | 1 |
+----+--------+-----+
10 rows in set (0.00 sec)
mysql> SHOW CREATE TABLE tbl_sample\G
*************************** 1. row ***************************
Table: tbl_sample
Create Table: CREATE TABLE `tbl_sample` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) DEFAULT NULL,
`cnt` tinyint(3) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 ←"AUTO_INCREMENT" is not 11
1 row in set (0.00 sec)
mysql> INSERT INTO tbl_sample (name, cnt)
-> SELECT 'sample', '1' FROM dual UNION ALL
-> SELECT 'sample', '1' FROM dual UNION ALL
-> SELECT 'sample', '1' FROM dual UNION ALL
SELECT 'sample', '1' FROM dual UNION ALL
-> SELECT 'sample', '1' FROM dual UNION ALL
-> SELECT 'sample', '1' FROM dual UNION ALL
-> SELECT 'sample', '1' FROM dual UNION ALL
-> SELECT 'sample', '1' FROM dual UNION ALL
SELECT 'sample', '1' FROM dual UNION ALL
-> SELECT 'sample', '1' FROM dual UNION ALL
-> SELECT 'sample', '1' FROM dual UNION ALL
-> SELECT 'sample', '1' FROM dual;
Query OK, 10 rows affected (0.00 sec)
Records: 10 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM tbl_sample;
+----+--------+-----+
| id | name | cnt |
+----+--------+-----+
| 1 | sample | 1 |
| 2 | sample | 1 |
| 3 | sample | 1 |
| 4 | sample | 1 |
| 5 | sample | 1 |
| 6 | sample | 1 |
| 7 | sample | 1 |
| 8 | sample | 1 |
| 9 | sample | 1 |
| 10 | sample | 1 |
| 16 | sample | 1 |←It is started from the 16
| 17 | sample | 1 |
| 18 | sample | 1 |
| 19 | sample | 1 |
| 20 | sample | 1 |
| 21 | sample | 1 |
| 22 | sample | 1 |
| 23 | sample | 1 |
| 24 | sample | 1 |
| 25 | sample | 1 |
+----+--------+-----+
20 rows in set (0.00 sec)
▼execute "bulk insert"
mysql> TRUNCATE TABLE tbl_sample;
Query OK, 0 rows affected (0.02 sec)
mysql> INSERT INTO tbl_sample (name, cnt)
-> VALUES
-> ('sample', '1'),
-> ('sample', '1'),
-> ('sample', '1'),
-> ('sample', '1'),
-> ('sample', '1'),
-> ('sample', '1'),
-> ('sample', '1'),
-> ('sample', '1'),
-> ('sample', '1'),
-> ('sample', '1');
Query OK, 10 rows affected (0.00 sec)
Records: 10 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM tbl_sample;
+----+--------+-----+
| id | name | cnt |
+----+--------+-----+
| 1 | sample | 1 |
| 2 | sample | 1 |
| 3 | sample | 1 |
| 4 | sample | 1 |
| 5 | sample | 1 |
| 6 | sample | 1 |
| 7 | sample | 1 |
| 8 | sample | 1 |
| 9 | sample | 1 |
| 10 | sample | 1 |
+----+--------+-----+
10 rows in set (0.00 sec)
mysql> SHOW CREATE TABLE tbl_sample\G
*************************** 1. row ***************************
Table: tbl_sample
Create Table: CREATE TABLE `tbl_sample` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) DEFAULT NULL,
`cnt` tinyint(3) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
mysql> INSERT INTO tbl_sample (name, cnt)
-> VALUES
-> ('sample', '1'),
-> ('sample', '1'),
-> ('sample', '1'),
-> ('sample', '1'),
-> ('sample', '1'),
-> ('sample', '1'),
-> ('sample', '1'),
-> ('sample', '1'),
-> ('sample', '1'),
-> ('sample', '1');
Query OK, 10 rows affected (0.01 sec)
Records: 10 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM tbl_sample;
+----+--------+-----+
| id | name | cnt |
+----+--------+-----+
| 1 | sample | 1 |
| 2 | sample | 1 |
| 3 | sample | 1 |
| 4 | sample | 1 |
| 5 | sample | 1 |
| 6 | sample | 1 |
| 7 | sample | 1 |
| 8 | sample | 1 |
| 9 | sample | 1 |
| 10 | sample | 1 |
| 11 | sample | 1 |
| 12 | sample | 1 |
| 13 | sample | 1 |
| 14 | sample | 1 |
| 15 | sample | 1 |
| 16 | sample | 1 |
| 17 | sample | 1 |
| 18 | sample | 1 |
| 19 | sample | 1 |
| 20 | sample | 1 |
+----+--------+-----+
20 rows in set (0.00 sec)
mysql> SHOW CREATE TABLE tbl_sample\G
*************************** 1. row ***************************
Table: tbl_sample
Create Table: CREATE TABLE `tbl_sample` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) DEFAULT NULL,
`cnt` tinyint(3) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
Description: Hello. If execute "select insert", I will report "AUTO_INCREMENT" because not a serial number. kazushige uratani How to repeat: ▼Prepare mysql> CREATE TABLE `tbl_sample` ( -> `id` smallint(5) unsigned NOT NULL DEFAULT '0', -> `name` varchar(30) DEFAULT NULL, -> `cnt` tinyint(3) unsigned NOT NULL DEFAULT '0', -> PRIMARY KEY (`id`) -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.01 sec) mysql> ALTER TABLE tbl_sample MODIFY id INT AUTO_INCREMENT; Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0 ▼execute "select insert" mysql> INSERT INTO tbl_sample (name, cnt) -> SELECT 'sample', '1' FROM dual UNION ALL SELECT 'sample', '1' FROM dual UNION ALL -> SELECT 'sample', '1' FROM dual UNION ALL -> SELECT 'sample', '1' FROM dual UNION ALL -> SELECT 'sample', '1' FROM dual UNION ALL SELECT 'sample', '1' FROM dual UNION ALL -> SELECT 'sample', '1' FROM dual UNION ALL -> SELECT 'sample', '1' FROM dual UNION ALL SELECT 'sample', '1' FROM dual UNION ALL -> SELECT 'sample', '1' FROM dual UNION ALL -> SELECT 'sample', '1' FROM dual UNION ALL -> SELECT 'sample', '1' FROM dual UNION ALL SELECT 'sample', '1' FROM dual; -> SELECT 'sample', '1' FROM dual; Query OK, 10 rows affected (0.01 sec) Records: 10 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM tbl_sample; +----+--------+-----+ | id | name | cnt | +----+--------+-----+ | 1 | sample | 1 | | 2 | sample | 1 | | 3 | sample | 1 | | 4 | sample | 1 | | 5 | sample | 1 | | 6 | sample | 1 | | 7 | sample | 1 | | 8 | sample | 1 | | 9 | sample | 1 | | 10 | sample | 1 | +----+--------+-----+ 10 rows in set (0.00 sec) mysql> SHOW CREATE TABLE tbl_sample\G *************************** 1. row *************************** Table: tbl_sample Create Table: CREATE TABLE `tbl_sample` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) DEFAULT NULL, `cnt` tinyint(3) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 ←"AUTO_INCREMENT" is not 11 1 row in set (0.00 sec) mysql> INSERT INTO tbl_sample (name, cnt) -> SELECT 'sample', '1' FROM dual UNION ALL -> SELECT 'sample', '1' FROM dual UNION ALL -> SELECT 'sample', '1' FROM dual UNION ALL SELECT 'sample', '1' FROM dual UNION ALL -> SELECT 'sample', '1' FROM dual UNION ALL -> SELECT 'sample', '1' FROM dual UNION ALL -> SELECT 'sample', '1' FROM dual UNION ALL -> SELECT 'sample', '1' FROM dual UNION ALL SELECT 'sample', '1' FROM dual UNION ALL -> SELECT 'sample', '1' FROM dual UNION ALL -> SELECT 'sample', '1' FROM dual UNION ALL -> SELECT 'sample', '1' FROM dual; Query OK, 10 rows affected (0.00 sec) Records: 10 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM tbl_sample; +----+--------+-----+ | id | name | cnt | +----+--------+-----+ | 1 | sample | 1 | | 2 | sample | 1 | | 3 | sample | 1 | | 4 | sample | 1 | | 5 | sample | 1 | | 6 | sample | 1 | | 7 | sample | 1 | | 8 | sample | 1 | | 9 | sample | 1 | | 10 | sample | 1 | | 16 | sample | 1 |←It is started from the 16 | 17 | sample | 1 | | 18 | sample | 1 | | 19 | sample | 1 | | 20 | sample | 1 | | 21 | sample | 1 | | 22 | sample | 1 | | 23 | sample | 1 | | 24 | sample | 1 | | 25 | sample | 1 | +----+--------+-----+ 20 rows in set (0.00 sec) ▼execute "bulk insert" mysql> TRUNCATE TABLE tbl_sample; Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO tbl_sample (name, cnt) -> VALUES -> ('sample', '1'), -> ('sample', '1'), -> ('sample', '1'), -> ('sample', '1'), -> ('sample', '1'), -> ('sample', '1'), -> ('sample', '1'), -> ('sample', '1'), -> ('sample', '1'), -> ('sample', '1'); Query OK, 10 rows affected (0.00 sec) Records: 10 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM tbl_sample; +----+--------+-----+ | id | name | cnt | +----+--------+-----+ | 1 | sample | 1 | | 2 | sample | 1 | | 3 | sample | 1 | | 4 | sample | 1 | | 5 | sample | 1 | | 6 | sample | 1 | | 7 | sample | 1 | | 8 | sample | 1 | | 9 | sample | 1 | | 10 | sample | 1 | +----+--------+-----+ 10 rows in set (0.00 sec) mysql> SHOW CREATE TABLE tbl_sample\G *************************** 1. row *************************** Table: tbl_sample Create Table: CREATE TABLE `tbl_sample` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) DEFAULT NULL, `cnt` tinyint(3) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 1 row in set (0.00 sec) mysql> INSERT INTO tbl_sample (name, cnt) -> VALUES -> ('sample', '1'), -> ('sample', '1'), -> ('sample', '1'), -> ('sample', '1'), -> ('sample', '1'), -> ('sample', '1'), -> ('sample', '1'), -> ('sample', '1'), -> ('sample', '1'), -> ('sample', '1'); Query OK, 10 rows affected (0.01 sec) Records: 10 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM tbl_sample; +----+--------+-----+ | id | name | cnt | +----+--------+-----+ | 1 | sample | 1 | | 2 | sample | 1 | | 3 | sample | 1 | | 4 | sample | 1 | | 5 | sample | 1 | | 6 | sample | 1 | | 7 | sample | 1 | | 8 | sample | 1 | | 9 | sample | 1 | | 10 | sample | 1 | | 11 | sample | 1 | | 12 | sample | 1 | | 13 | sample | 1 | | 14 | sample | 1 | | 15 | sample | 1 | | 16 | sample | 1 | | 17 | sample | 1 | | 18 | sample | 1 | | 19 | sample | 1 | | 20 | sample | 1 | +----+--------+-----+ 20 rows in set (0.00 sec) mysql> SHOW CREATE TABLE tbl_sample\G *************************** 1. row *************************** Table: tbl_sample Create Table: CREATE TABLE `tbl_sample` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) DEFAULT NULL, `cnt` tinyint(3) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 1 row in set (0.00 sec)