auto increment not starting from 1 - mysql

I am inserting some data to a database and I have an id column which has auto increment. I updated my xampp server yesterday and now the auto increment is starting from 4, 3, 5 in different tables. It used to work fine before. I did not delete any rows from the table it just starts from those numbers. What is wrong?

ALTER TABLE tablename AUTO_INCREMENT = 1
This will reset your auto increment to start from 1

If you really want to reset this, in phpMyAdmin, open this table, go to Operations and change the value for AUTO_INCREMENT.

You can reset your auto increment ID from the following Command:
ALTER TABLE TABLE_NAME AUTO_INCREMENT = 1;
This will start from 1.
OR
go to LOCALHOST/PHPMYADMIN enter:
select your DB
after choose the specific table than go to Operations an set a number to the Auto increment.

If you really want to reset this, in phpMyAdmin, open this table, go to Operations and change the value for AUTO_INCREMENT.----- this is working for me, i have just done this,

This can be a consequence of using a Galera cluster. By default, it will automatically adjust the auto_increment_increment and auto_increment_offset variables according to the size of the cluster, and when the cluster size changes. This avoids replication conflicts due to auto_increment.
The short answer is not to depend on auto_increment numbers being subsequent, without gaps.

Related

Reset autoincrement in mysql

I'm running my DB on MYSQL community version 8.0.20. I want to reset a column's autoincrement value back to 1. I looked around and tried doing this
ALTER TABLE table_name AUTO_INCREMENT = value;
but it didn't work. I read that there's no actual way to reset the autoincrement value and that makes sense as it would affect data integrity. But I wanted to use this for a table that has no dependencies at all. How can I reset the value? I was thinking of dropping and recreating the table exactly as it is with all of it's columns and types (I don't need to retain the records)
Is there really a way to reset the auto increment value directly? If not, what is the easiest way I can drop and recreate the table in MYSQL Workbench.

Trying to reset the auto increment value of a table

First off, I've gone through the normal steps to try and reset a value, GUI and CLI, it says x rows affected.
I have all the permissions I would need to do this(any amazon specific ones i don't know about aside), locally the queries work fine.
Is there a way to modify my tables auto increment number so that it starts at say 19, and not 1,000,021?
Queries I've tried.
ALTER TABLE X AUTO_INCREMENT = 19
I have all permissions granted to all tables, and I have even tried granting ALTER specifically to my user on the specific db.table.
Any insight or a push in the right direction would be lovely.
Your command:
ALTER TABLE X AUTO_INCREMENT = 19
will work only if your table does NOT have row with id 19 present. If you try to insert new row which would cause insertion conflict, it will automatically reset to maximum existing value of your auto-increment column + 1. In other words, if you have rows with id 19 and 1000020 (maximum), it will automatically reset to 1000021 on any attempt to insert.

Keep the auto increment value for in-memory database after restarting the server

We are using in-memory tables in MySQL with an auto-incremented primary key.
After restarting MySQL the in-memory tables are emptied as expected.
However we would like to keep the auto increment value, so that the next inserted row will have the ID after the one that was used in the last session.
Is that possible?
After the restart you can use this statement to change the next value to use for AUTO_INCREMENT columns.
ALTER TABLE mytable AUTO_INCREMENT = new_value;
The CREATE TABLE syntax is similar, but since memory tables are recreated after the restart, it won't be much use to you.
If the timing of this call is important I would recommend adding it to the startup script; I wouldn't know any other way.
We could not use the ALTER TABLE statement because a function was necessary to calculate the initial auto increment.
The solution was to:
my.cnf file was changed, after the header [mysqld] we added init-file = [file_path]
The file would execute a insert on the table with a dummy value (e.g. INSERT INTO mytable(id) VALUES (UNIX_TIMESTAMP()). After this, the line can be deleted if wished.

How to configure the structure of a mysql database

Is it possible to restore the previous state of a mysql database through phpmyadmin?
I have one column in 4 of the tables that have the auto increment.
And my problem is how to begin again in the count of number 1 when I try to add a data.
I tried deleting all the records then add a record but it doesn't start with 1.
How do I do this without building the database over again by typing and selecting the data types.
What I want to do is to start the counting from 1 again. Is it possible?
Open phpMyAdmin and then select the DB you wish to change from the top left panel.
Now click the "query" button also top left to open a query window where you can then run the sql code below to reset the auto increment count for your table.
ALTER TABLE your_table_name AUTO_INCREMENT=1
If you dont care about the data in the table you can just hit the empty button (make sure you are on the right table). That will tuncate your table and anything you add after that will start at 1. If you set a field to auto increment then each item after that will increase by 1.
Have you tried ...
ALTER TABLE t2 AUTO_INCREMENT = 1;
It will reset the value to the smallest value allowed. Other than that you are out of luck.

mysql auto_increment by 5?

I'm running into a really, really, really weird problem with mysql.
I have a primary key, "id". It's set to auto increment. Problem is, first entry started at "3". And every new entry increases by 5, so the next entry's id is 8, the next is 13, then 18, so on. This is stupid. Why isn't it just incrementing by 1, like it should be? And why is it starting at 3???
Is there some setting somewhere I'm missing? I'm using phpmyadmin, if that helps.
There's a my.cnf configuration for that: auto_increment_increment. It's used for master-master server setups to prevent the same key from being defined twice by two different servers. So using that coupled with auto_increment_offset, it allows each server to always generate unique ids...
So, from what you're describing, it sounds like you have this:
auto_increment_increment = 5
auto_increment_offset = 3
The auto increment is probably set to 5. Try:
ALTER TABLE YourTable AUTO_INCREMENT = 1;
You can retrieve the current setting with:
SHOW TABLE STATUS LIKE 'YourTable'
See the MySQL docs for more details.
it appears the table was created with an increment set to 5. you can change it back to one with the following:
ALTER TABLE tbl AUTO_INCREMENT = 1;