外部キーが存在し、プロシージャを使用したくない場合は、外部キーを削除する場合 この方法で実行できます(MySQLの場合):
set @var=if((SELECT true FROM information_schema.TABLE_CONSTRAINTS WHERE
CONSTRAINT_SCHEMA = DATABASE() AND
TABLE_NAME = 'table_name' AND
CONSTRAINT_NAME = 'fk_name' AND
CONSTRAINT_TYPE = 'FOREIGN KEY') = true,'ALTER TABLE table_name
drop foreign key fk_name','select 1');
prepare stmt from @var;
execute stmt;
deallocate prepare stmt;
外部キーがある場合は、alter tableステートメントを変数に入れ、ない場合は、ダミーステートメントを入れます。そしてそれを実行します。