Created
March 18, 2011 09:03
-
-
Save leenasn/875796 to your computer and use it in GitHub Desktop.
An SQL script to offset the id fields across all tables in a DB.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
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; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
Very clever. I thought of doing this as a PHP script, but much more elegant as a SQL script to generate SQL :)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Couple of points to be noted before execute the scripts: