У меня есть база данных, где мне нужно отбросить несколько внешних ключей, но я не знаю заранее, существуют ли еще внешние ключи.
Я нашел несколько хранимых процедур (http://forums.mysql.com/read.php?97,218825,247526), которые делают этот трюк, но я не хочу создавать хранимую процедуру для этого.
Я пытался использовать запрос внутри хранимой процедуры, но получаю ошибку, используя "IF EXISTS (SELECT NULL FROM etc... etc...".
Могу ли я использовать IF EXISTS
только в хранимых процедурах?
сейчас единственное, что я могу запустить, это
SELECT * FROM information_schema.TABLE_CONSTRAINTS
WHERE information_schema.TABLE_CONSTRAINTS.CONSTRAINT_TYPE = 'FOREIGN KEY'
AND information_schema.TABLE_CONSTRAINTS.TABLE_SCHEMA = 'myschema'
AND information_schema.TABLE_CONSTRAINTS.TABLE_NAME = 'mytable';
и это я тоже пробовал
IF EXISTS (SELECT NULL FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = DATABASE() AND CONSTRAINT_NAME = parm_key_name) THEN
(...) do something (...)
END IF;
но я получаю У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, для правильного синтаксиса, чтобы использовать рядом с 'IF' в строке 1
Я искал примеры на форумах с простыми запросами и не могу понять, почему это не работает.
NOTE: Edit to correct broken link