Com o uso de variáveis como nomes de colunas e tabelas, seria melhor
DECLARE
uma consulta como uma "string" e, em seguida, execute essa string por meio de um Prepared Statement
. Isso pode ser feito de duas maneiras, seja por
CONCAT()
para construir a string completa ou usando PREPARE
com argumentos:SET @query = CONCAT('ALTER TABLE ', var_referenced_table_name, ' DROP FOREIGN KEY ', var_constraint_name, ';');
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;