Pessoal, boa tarde,
eu tenho mais um probleminha pra vcs me ajudarem a resolver, eu estou com um problema no meu banco que é o MySQL.
No ECLIPSE, eu estou fazendo a inserção de dados em duas tabelas:
a tabela disciplina, que contém apenas as colunas: código (int not null auto_increment) -> PRIMARY KEY
e contém a coluna nome (varchar(20), not null)
E tenho mais uma tabela, a de professsores, ques contém as colunas:
codigo (int not null auto_increment) -> PRIMARY KEY
nome (varchar(20) not null)
idade (int(2))
sexo (char(1))
coddisciplina (foreign key) REFERENCES -> disciplina.codigo
OK, agora vamos supor que eu tenho isso em disciplina:
1, portugues
2, matematica
Bem, quando eu quero inserir um novo professor, eu tenho que linká-lo à tabela de disciplina, pq todo professor ensina uma matéria…enfim
Aqui é que começa o problema, no JAVA ou no banco, se eu fizer isso:
insert into professor values(‘Roberto’, 25, ‘M’, 10)
Na tabela de professor vai constar:
1
Roberto
25
M
10
E na tabela de disciplina não vai constar nada.
Isso me dá três conclusões
primeiro, não podia inserir o registro na tabela de professores, pq o CODDISCIPLINA que foi passado(10) não existe na tabela de disciplina.
Segundo, existe algum problema de relacionamento de chave estrangeira no Mysql que não trata isso. Ou trata, mas parcialmente. Perceba que como o coddisciplina passado foi incorreto, isso fez com que esse registro não fosse parar na tabela de disciplina, mas parou em professor.
E terceiro, eu queria saber não só como resolver isso, mas tbm como IDENTIFICAR ESSE PROBLEMA através do import de java.sql.SQLException.
Se eu conseguir identificar esse problema no java, eu faço com que, quando vc for inserir um professor e lincá-lo à uma matéria que não existe, isso faria com que o java trigasse um pop-up ou jogasse uma msg no console dizendo ‘MATÉRIA NÃO ENCONTRADA. O PROFESSOR NÃO SERÁ CADASTRADO’.
qualquer sugetão que possa me colocar no caminho certo, eu sou imensamente grato.
PS: skill de iniciante 