La forma más simple de agregar claves foráneas (FK) a una tabla es crearlas directamente
Código:
ALTER TABLE recurso
ADD FOREIGN KEY (id_tipo) REFRENCES tipo (id)
ON UPDATE CASCADE;
Si lo que quieres es indicar un nombre de índice definido para esa CONSTARINT, lo tienes que definir:
Código:
ALTER TABLE recurso
ADD CONSTRAINT nombreconstraint FOREIGN KEY (id_tipo) REFRENCES tipo (id)
ON UPDATE CASCADE;
Las tres condiciones mínimas y básicas para que de resultado son:
1. La tabla referida, debe existir ANTES de hacer esta declaración. Sino dará error.
2. El campo referido DEBE ser clave en su tabla. Existen dos posibilidades: Por default debes ser la PRIMARY KEY, de no existir, se puede usar un campo definido como UNIQUE.
3. Si la tabla referida tiene la clave compuesta, debe existir un campo por cada parte y estar referida TODA la clave.
Fuera de eso, no deberías tener problemas en hacer las FK aunque sean de muchas tablas. Se puede incluso construir tablas relacionales que sólo contienen FKs