Tengo una base de datos donde necesito soltar algunas claves externas, pero no sé de antemano si las claves externas todavía existen.Consulta para encontrar claves externas
He encontrado algunos procedimientos almacenados (http://forums.mysql.com/read.php?97,218825,247526) que hacen el truco, pero no quiero crear un procedimiento almacenado para esto.
He tratado de utilizar la consulta dentro del procedimiento almacenado, pero me da un error al usar "SI EXISTE (SELECCIONAR nulos de etc .. etc ...
se puede usar sólo IF EXISTS
en los procedimientos almacenados?
en este momento, lo único que puedo correr es
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';
y he probado esto también
IF EXISTS (SELECT NULL FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = DATABASE() AND CONSTRAINT_NAME = parm_key_name) THEN
(...) do something (...)
END IF;
pero me da un You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF' at line 1
he buscado ejemplos en los foros con preguntas sencillas y no puedo tener sentido de por qué esto no está funcionando.
NOTA: Editar para corregir enlace roto
¿Cómo se ve tu consulta? –
¿Qué quiere decir específicamente con "soltar claves externas"? – gview
@ gview algo así como ALTER TABLE 'table' DROP FOREIGN KEY' fk'; –