Skip to content Skip to sidebar Skip to footer

Alter Auto_increment Value By Select Result

Basically what I want is a working-version of the following code: ALTER TABLE table_name AUTO_INCREMENT = ( SELECT `AUTO_INCREMENT` FROM INFORMATION_SCHEMA.

Solution 1:

Try this:

SELECT `AUTO_INCREMENT` INTO@AutoIncFROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA ='database_name'AND TABLE_NAME ='another_table_name';

SET@s:=CONCAT('ALTER TABLE `database_name`.`table_name` AUTO_INCREMENT=', @AutoInc);
PREPARE stmt FROM@s;
EXECUTE stmt;
DEALLOCATEPREPARE stmt;

Solution 2:

Just upon quick glance, the error says it all. Syntax is incorrect

The syntax should adhere to:

ALTERTABLE table_name AUTO_INCREMENT=<INTEGER_VALUE>;

So looking at your query, remove the word "SET"

ALTERTABLE table_name AUTO_INCREMENT =
(
    SELECT
        `AUTO_INCREMENT`
    FROM
        INFORMATION_SCHEMA.TABLES
    WHERE
        TABLE_SCHEMA ='database_name'AND TABLE_NAME ='another_table_name'
);

Solution 3:

What about

ALTERTABLE table_name 
SET AUTO_INCREMENT = (SELECTMAX(a.AUTO_INC_VAL) FROM database_name.table_name a) )

if you want the current increment value or

ALTERTABLE table_name 
SET AUTO_INCREMENT = (SELECTMIN(a.AUTO_INC_VAL) FROM database_name.table_name a) )

if you want the same initial INCREMENT VALUE

Post a Comment for "Alter Auto_increment Value By Select Result"