Código SQL
[-]Delimiter $$
DROP PROCEDURE IF EXISTS insertaPaciente;
CREATE PROCEDURE insertaPaciente (identificador VARCHAR(12), nombre VARCHAR(45), apellidoP VARCHAR(45), apellidoM VARCHAR(45), fecha DATE, telefono VARCHAR(15), celular VARCHAR(15),
pais INT, estado int, ciudad int, colonia int, calle int, numero VARCHAR(7), profesion VARCHAR(45), estadoC VARCHAR(15), escolaridad VARCHAR(45), sexo int, sangre VARCHAR(2), correo VARCHAR(70)) ##Se definen los parametros que necesitara el SP
BEGIN #Inicia las intrucciones para el SP
DECLARE direccion INT; #Declaramos una variable y a continuación comprobaremos si ya existe un registro igual
SET direccion = (Select count(cl08_Id) from cl08 where cl14_Id = pais and cl13_Id = estado and cl12_Id = ciudad and cl09_Id = calle and cl11_Id = colonia and cl08_Numero = numero);
IF direccion = 0 # a traves de este if decidimos si se inserta un nuevo registro o se utiliza el que ya existe
THEN
INSERT INTO cl08 values (null,calle,colonia,numero,ciudad,estado,pais);
END IF;
SET direccion = (Select cl08_Id from cl08 where cl14_Id = pais and cl13_Id = estado and cl12_Id = ciudad and cl09_Id = calle and cl11_Id = colonia and cl08_Numero = numero);
insert into cl00 values (null,identificador, nombre, apellidoP, apellidoM, fecha, telefono, celular, profesion, estadoC,escolaridad, sexo, sangre, correo, direccion); # Hacemos nuestra inserción
END $$
Este es el SP. Desde el gestor de la Base de datos funciona sin problemas