text: DELIMITER $$
  
  CREATE PROCEDURE CADASTRO_PROFESSOR
  (
  	IN P_NOMEPROF nvarchar(45), IN P_NASCIMENTO DATE, IN P_CPF CHAR(11), IN P_RG CHAR(9),
      IN P_SEXO CHAR(1), IN P_NACIONALIDADE NVARCHAR(35), IN P_TELEFONE CHAR(10), IN P_CELULAR CHAR(11),
      IN P_EMAIL NVARCHAR(40), IN P_RUA NVARCHAR(60), IN P_CEP CHAR(8), IN P_NUMERO SMALLINT, IN P_CIDADE NVARCHAR(40),
  	IN P_ESTADO CHAR(2), IN P_NOMEMATERIA NVARCHAR(45)
  )
  BEGIN
  	DECLARE MATERIAID INT;
      DECLARE CONTATOID INT;
      DECLARE ENDERECOID INT;
      DECLARE CONTAGEM_MATERIA INT;
      DECLARE CONTAGEM_EMAIL INT;
      DECLARE CONTAGEM_CELULAR INT;
      DECLARE CONTAGEM_CPF INT;
      
      SET CONTAGEM_MATERIA = (SELECT COUNT(IDMATERIA) FROM MATERIA WHERE NOMEMATERIA = P_NOMEMATERIA);
      SET CONTAGEM_EMAIL = (SELECT COUNT(IDCONTATOS) FROM CONTATOS WHERE EMAIL = P_EMAIL);
      SET CONTAGEM_CELULAR = (SELECT COUNT(IDCONTATOS) FROM CONTATOS WHERE CELULAR = P_CELULAR);
      SET CONTAGEM_CPF = (SELECT COUNT(IDPROFESSOR) FROM PROFESSOR WHERE CPF = P_CPF);
  		
      INSERT INTO ENDERECO VALUES(DEFAULT, P_RUA, P_CEP, P_NUMERO, P_CIDADE, P_ESTADO);
      SET ENDERECOID = (SELECT MAX(IDENDERECO) FROM ENDERECO);    
     
     IF (CONTAGEM_MATERIA > 0) THEN
  		SET MATERIAID = (SELECT IDMATERIA FROM MATERIA WHERE NOMEMATERIA = P_NOMEMATERIA);
          SELECT 'MATERIA Existente';
     ELSE
  		INSERT INTO MATERIA VALUES (DEFAULT, P_NOMEMATERIA);
  		SET MATERIAID = (SELECT MAX(IDMATERIA) FROM MATERIA);
          SELECT 'MATERIA Cadastrada!';
     END IF;
     
     IF((CONTAGEM_EMAIL > 0) OR (CONTAGEM_CELULAR > 0)) THEN
  		SELECT 'EMAIL OU CELULAR EXISTENTE!!!!';
     ELSE
  		INSERT INTO CONTATOS VALUES(DEFAULT,P_TELEFONE,P_CELULAR,P_EMAIL);
  		SET CONTATOID = (SELECT MAX(IDCONTATOS) FROM CONTATOS); 
  	END IF;
     
  	INSERT INTO PROFESSOR VALUES(
  	DEFAULT, P_NOMEPROF, P_NASCIMENTO, P_CPF, P_RG, P_SEXO, P_NACIONALIDADE, CONTATOID, ENDERECOID, MATERIAID);    
      
  END $$
  DELIMITER ;
  
  SELECT * FROM MATERIA;
  
  CALL CADASTRO_PROFESSOR (
  'fulano de tall2', '2001-05-20', '00000202005', '002000004', 'F', 'Brasil', '1110000004',1192200005,
  'Fulanotall2@email.com', 'Rua de Tal 222', '00000004', 205, 'São Paulo', 'sp','Portugûes'
  );
  
  SELECT * FROM PROFESSOR;