Bug #40253 | reset of auto_increment doesn't work | ||
---|---|---|---|
Submitted: | 22 Oct 2008 14:36 | Modified: | 22 Oct 2008 18:21 |
Reporter: | Raffaele Palmieri | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | MySQL Server: General | Severity: | S2 (Serious) |
Version: | 5.1.28-rc | OS: | Windows |
Assigned to: | CPU Architecture: | Any | |
Tags: | ALTER TABLE, auto_increment |
[22 Oct 2008 14:36]
Raffaele Palmieri
[22 Oct 2008 16:40]
Valeriy Kravchuk
Thank you for a problem report. According to the manual (http://dev.mysql.com/doc/refman/5.1/en/create-table.html): "AUTO_INCREMENT sequences begin with 1." If you reset to valid auto_increment initial value, it works... But the fact that there is no even warning for an ALTER TABLE that does nothing I'd consider a minor bug.
[22 Oct 2008 17:32]
Raffaele Palmieri
So, you are saying that if I set auto_increment value to 1, should it work?
[22 Oct 2008 17:55]
Valeriy Kravchuk
Yes, it works for me. Look: C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -uroot -proot -P3310 test Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.1.28-rc-community MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> CREATE TABLE `test`.`tabletest` ( -> `stringa` VARCHAR(20) NOT NULL, -> `id` INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT, -> PRIMARY KEY (`id`) -> ) -> ENGINE = InnoDB; Query OK, 0 rows affected (0.75 sec) mysql> insert into test.tabletest(stringa) values('test'); Query OK, 1 row affected (0.09 sec) mysql> show table status like 'tablet%'\G *************************** 1. row *************************** Name: tabletest Engine: InnoDB Version: 10 Row_format: Compact Rows: 1 Avg_row_length: 16384 Data_length: 16384 Max_data_length: 0 Index_length: 0 Data_free: 232783872 Auto_increment: 2 Create_time: 2008-10-22 19:32:55 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: 1 row in set (0.77 sec) mysql> delete from test.tabletest; Query OK, 1 row affected (0.09 sec) mysql> alter table tabletest auto_increment=1; Query OK, 0 rows affected (0.59 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> show table status like 'tablet%'\G *************************** 1. row *************************** Name: tabletest Engine: InnoDB Version: 10 Row_format: Compact Rows: 0 Avg_row_length: 0 Data_length: 16384 Max_data_length: 0 Index_length: 0 Data_free: 232783872 Auto_increment: 1 Create_time: 2008-10-22 19:32:55 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: 1 row in set (0.00 sec) mysql> alter table tabletest auto_increment=0; Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> show table status like 'tablet%'\G *************************** 1. row *************************** Name: tabletest Engine: InnoDB Version: 10 Row_format: Compact Rows: 0 Avg_row_length: 0 Data_length: 16384 Max_data_length: 0 Index_length: 0 Data_free: 232783872 Auto_increment: 1 Create_time: 2008-10-22 19:32:55 Update_time: NULL Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: 1 row in set (0.00 sec)
[22 Oct 2008 18:21]
Raffaele Palmieri
Ok thank you, tomorrow I will try with your suggest.
[5 Nov 2008 20:53]
Mikhail Izioumtchenko
if "alter table foo auto_increment=0" being ignored without a warning, it's not an InnoDB bug as it's the same for myisam tables. The sequence below is for 5.1.29-rc. So I'm changing assignment/category accordingly. mysql> show table status like 'i' \G *************************** 1. row *************************** Name: i Engine: MyISAM Version: 10 Row_format: Fixed Rows: 2 Avg_row_length: 7 Data_length: 14 Max_data_length: 1970324836974591 Index_length: 2048 Data_free: 0 Auto_increment: 3 Create_time: 2008-11-05 12:48:01 Update_time: 2008-11-05 12:48:16 Check_time: NULL Collation: latin1_swedish_ci Checksum: NULL Create_options: Comment: 1 row in set (0.01 sec) mysql> alter table i auto_increment=0; Query OK, 2 rows affected (0.01 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> show table status like 'i' \G *************************** 1. row *************************** Name: i Engine: MyISAM Version: 10 Row_format: Fixed Rows: 2 Avg_row_length: 7 Data_length: 14 Max_data_length: 1970324836974591 Index_length: 2048 Data_free: 0 Auto_increment: 3 Create_time: 2008-11-05 12:48:55 Update_time: 2008-11-05 12:48:55 Check_time: NULL Collation: latin1_swedish_ci Checksum: NULL Create_options: Comment: 1 row in set (0.00 sec) mysql> alter table i auto_increment=-12; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-12' at line 1 mysql>