Skip to content

Instantly share code, notes, and snippets.

@ronildo
Forked from leenasn/offset_id_fields_mysql.sql
Created January 20, 2012 01:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ronildo/1644449 to your computer and use it in GitHub Desktop.
Save ronildo/1644449 to your computer and use it in GitHub Desktop.
An SQL script to offset the id fields across all tables in a DB.
/*
This script is for updating the auto_increment field by an offset. The logic applied is
max(AUTO_INCREMENT) + current value in the table.
*/
SET @db:='id_new';
select @max_id:=max(AUTO_INCREMENT) from information_schema.tables;
select concat('update ',table_name,' set ', column_name,' = ',column_name,'+',@max_id,' ; ') from information_schema.columns where table_schema=@db and column_name like '%id' into outfile 'update_ids.sql';
use id_new
source update_ids.sql;
select @max_id:=max(AUTO_INCREMENT) from information_schema.tables;
select concat('alter table ',table_name,' AUTO_INCREMENT= ', @max_id,';') from information_schema.tables where table_schema=@db into outfile 'increment_id_values.sql';
source increment_id_values.sql
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment