schema="test" tables=11 table="test_table" renamedTable="testTable" id="id" related="related_id" renamedRelated="relatedId" sql="CREATE SCHEMA IF NOT EXISTS ${schema};" sql+="USE ${schema};" for i in $(seq 1 $tables); do sql+="DROP TABLE IF EXISTS ${table}${i};" sql+="DROP TABLE IF EXISTS ${renamedTable}${i};" done sql+="DROP TABLE IF EXISTS ${table};" sql+="DROP TABLE IF EXISTS ${renamedTable};" sql+="CREATE TABLE ${table} (${id} INT UNSIGNED PRIMARY KEY) ENGINE=INNODB;" for i in $(seq 1 $tables); do sql+="CREATE TABLE ${table}${i} (${related} INT UNSIGNED, FOREIGN KEY (${related}) REFERENCES ${table} (${id})) ENGINE=INNODB;" done sql+="START TRANSACTION;" sql+="RENAME TABLE ${table} TO ${renamedTable};" sql+="COMMIT;" for i in $(seq 1 $tables); do sql+="START TRANSACTION;" sql+="RENAME TABLE ${table}${i} TO ${renamedTable}${i};" sql+="ALTER TABLE ${renamedTable}${i} DROP FOREIGN KEY ${renamedTable}${i}_ibfk_1;" sql+="ALTER TABLE ${renamedTable}${i} CHANGE COLUMN ${related} ${renamedRelated} INT UNSIGNED;" sql+="ALTER TABLE ${renamedTable}${i} ADD FOREIGN KEY (${renamedRelated}) REFERENCES ${renamedTable} (${id});" sql+="COMMIT;" done echo $sql | mysql -u root