Ir para conteúdo
Fórum Script Brasil

btolinux

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Tudo que btolinux postou

  1. Desculpem a demora em responder... mas funcionou perfeitamente... um grande abraço para todos e até uma próxima!
  2. Olá pessoal e Desde já obrigado tenho uma estrutura de tabelas que precisa de criar uma procedure que faça a seguinte inserção de dados através de uma procedure: Primeiro Criando as Tabelas CREATE TABLE `faculdade`.`alunos` ( `pk_aluno` int(11) NOT NULL AUTO_INCREMENT, `nm_matricula` int(11) NOT NULL, `ds_aluno` varchar(100) NOT NULL, `ds_cpf` varchar(20) NOT NULL, `ds_end` varchar(100) NOT NULL, PRIMARY KEY (`pk_aluno`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1; CREATE TABLE `faculdade`.`docentes` ( `pk_docente` int(11) NOT NULL AUTO_INCREMENT, `ds_docente` varchar(100) NOT NULL, `ds_cpf` varchar(20) NOT NULL, `ds_end` varchar(100) NOT NULL, PRIMARY KEY (`pk_docente`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1; CREATE TABLE `faculdade`.`disciplinas` ( `pk_disciplina` int(11) NOT NULL AUTO_INCREMENT, `ds_disciplina` varchar(100) NOT NULL, `ds_cargahoraria` varchar(10) NOT NULL, `cd_disciplina` int(11) NOT NULL, `fk_docente` int(11) NOT NULL, PRIMARY KEY (`pk_disciplina`), KEY `docentesxdisc` (`fk_docente`), CONSTRAINT `docentesxdisc` FOREIGN KEY (`fk_docente`) REFERENCES `docentes` (`pk_docente`) ON DELETE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1; CREATE TABLE `faculdade`.`alunosxdisciplinas` ( `pk_alunoxdiscplina` int(11) NOT NULL AUTO_INCREMENT, `fk_aluno` int(11) NOT NULL, `fk_disciplina` int(11) NOT NULL, PRIMARY KEY (`pk_alunoxdiscplina`), KEY `alunosxdisc` (`fk_aluno`), KEY `disciplinasxaluno` (`fk_disciplina`), CONSTRAINT `alunosxdisc` FOREIGN KEY (`fk_aluno`) REFERENCES `alunos` (`pk_aluno`) ON DELETE CASCADE, CONSTRAINT `disciplinasxaluno` FOREIGN KEY (`fk_disciplina`) REFERENCES `disciplinas` (`pk_disciplina`) ON DELETE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=latin1; INSERT INTO `faculdade`.`alunos` VALUES (1,12984,'Paulo Roberto','123','Rua Otávio Mangabeira'), (2,12893,'Claudio José','321','Rua ACM'), (3,12892,'Tatiane Dantas','456','Rua das Ameixas'), (4,12891,'Gustavo','567','Rua Dom Pedro 2º'); INSERT INTO `faculdade`.`docentes` VALUES (1,'Rodrigo Pessoa','987','Rua das Acácias'), (2,'Francisco José','231','Caminho 5 Casa 1'), (3,'Giliard Ramos','312','Alameda dos Camelôs'), (4,'Fernando Pessoa','321','Rua 5 de Outubro'), (5,'João Dávila','8796','Avenida Santos Dumont'); INSERT INTO `faculdade`.`disciplinas` VALUES (1,'Ciências','60hs',3456,1), (2,'Matemática','60hs',3457,2), (3,'Português','60hs',3458,3), (4,'História','30hs',3459,4), (5,'Estudos Sociais','30hs',3460,1), (6,'Educação Moral e Cívica','30hs',3461,2); Agora a Sintaxe que vai para dentro da procedure SELECT pk_aluno INTO @aluno FROM alunos WHERE ds_aluno = des_aluno; SELECT pk_disciplina INTO @disciplina FROM disciplinas WHERE ds_disciplina = des_disciplina; IF @aluno IS NULL THEN BEGIN INSERT INTO alunos VALUES(null, des_aluno); SELECT MAX(pk_aluno) INTO @aluno FROM alunos; END; UPDATE alunosxdisciplinas SET fk_aluno = @aluno WHERE fk_disciplina = @disciplina; Então, gostaria de saber se a estrutura do IF está correta, pois testando aqui apresenta uma mensagem de erro no UPDATE Abraços para todo mundo e desde já obrigado pela atenção!
×
×
  • Criar Novo...