NI
Size: a a a
NI
V
AK
М
NI
М
AK
NI
AK
A
AK
AK
SET group_concat_max_len = 2048;
SET @database_name = "my_database";
SET @table_name = "my_table";
SET @change = "int unsigned";
SELECT DISTINCT
table_name,
column_name,
constraint_name,
referenced_table_name,
referenced_column_name,
CONCAT(
GROUP_CONCAT('ALTER TABLE `',table_name,'` DROP FOREIGN KEY `',constraint_name, '`' SEPARATOR ';'),
';',
GROUP_CONCAT('ALTER TABLE `',table_name,'` CHANGE `',column_name,'` `',column_name,'` ',@change SEPARATOR ';'),
';',
CONCAT('ALTER TABLE `',@table_name,'` CHANGE `',referenced_column_name,'` `',referenced_column_name,'` ',@change, ' NOT NULL AUTO_INCREMENT'),
';',
GROUP_CONCAT('ALTER TABLE `',table_name,'` ADD CONSTRAINT `',constraint_name,'` FOREIGN KEY(',column_name,') REFERENCES ',referenced_table_name,'(',referenced_column_name,')' SEPARATOR ';'),
';'
) AS query
FROM information_schema.key_column_usage
WHERE referenced_table_name is not null
AND referenced_column_name is not null
AND constraint_schema = @database_name
AND referenced_table_name = @table_name
GROUP BY referenced_table_name
AK
AK
SET group_concat_max_len = 2048;
SET @database_name = "med_copy";
SET @table_name = "pathogen";
SET @change = "int unsigned";
SELECT DISTINCT
table_name,
column_name,
constraint_name,
referenced_table_name,
referenced_column_name,
CONCAT(
CONCAT('ALTER TABLE `',@table_name,'` CHANGE `',referenced_column_name,'` `',referenced_column_name,'` ',@change, ' NOT NULL AUTO_INCREMENT'),
';'
) INTO @a, @b, @c, @d, @e, @queries
FROM `information_schema`.`key_column_usage`
WHERE `referenced_table_name` is not null
AND `referenced_column_name` is not null
AND `constraint_schema` = @database_name
AND `referenced_table_name` = @table_name
GROUP BY `referenced_table_name`;
PREPARE pkChange FROM @queries;
AK
cS
AK