Запрос на поиск внешних ключей

У меня есть база данных, где мне нужно отбросить несколько внешних ключей, но я не знаю заранее, существуют ли еще внешние ключи.

Я нашел несколько хранимых процедур (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

8
задан André Moreira 14 October 2011 в 11:24
поделиться