Bom dia a todos,
gostaria de pedir se alguém pode esclarecer uma duvida, quando eu tento inserir dados em duas tabelas, sendo uma especialização, ou seja, recebe a PK da outra tabela, gera o seguinte erro em SQL:
[color=red]
12:13:44 INSERT INTO pessoa (RG_pessoa, CPF_pessoa, senha, orgao_emissor, nome_pessoa, entrada_col, saida_col, data_nascimento, sexo_pessoa, estado, CEP, cidade, logradouro, bairro, numero) VALUES (‘145’,‘141’,‘1231’, ‘SSPPR’, ‘Gustavo’, ‘14/05/12’, ‘14/05/03’, ‘14/05/03’, ‘m’, ‘PR’, 86360, ‘gdsa’, ‘asda’, ‘asdad’, 1081) 1 row(s) affected
12:13:44 INSERT INTO professor (curriculo, disc_leciona) VALUES (‘Informatica’,‘11-12-14-’) Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (boletim_virtual.professor, CONSTRAINT fk_Professor_Pessoa FOREIGN KEY (Pessoa_id_pessoa) REFERENCES pessoa (id_pessoa) ON DELETE NO ACTION ON UPDATE NO ACTION)
[/color]
Esse é o código para o teste que eu utilizei:
[color=blue]
INSERT INTO pessoa (RG_pessoa, CPF_pessoa, senha, orgao_emissor, nome_pessoa, entrada_col,
saida_col, data_nascimento, sexo_pessoa, estado, CEP, cidade, logradouro, bairro, numero)
VALUES (‘145’,‘141’,‘1231’, ‘SSPPR’, ‘Gustavo’, ‘14/05/12’, ‘14/05/03’, ‘14/05/03’, ‘m’, ‘PR’, 123456, ‘Cidade’, ‘Nome da rua’, ‘Nome do bairro’, 123);
INSERT INTO professor (curriculo, disc_leciona) VALUES (‘Informatica’,‘11-12-14-’);
[/color]
Tabelas no banco:
[color=brown]-- -----------------------------------------------------
– Table boletim_virtual.Pessoa
– -----------------------------------------------------[/color]
CREATE TABLE IF NOT EXISTS boletim_virtual.Pessoa (
id_pessoa INT NOT NULL AUTO_INCREMENT ,
RG_pessoa VARCHAR(9) NULL ,
CPF_pessoa VARCHAR(11) NULL ,
senha VARCHAR(20) NULL ,
orgao_emissor VARCHAR(7) NULL ,
nome_pessoa VARCHAR(70) NULL ,
entrada_col VARCHAR(10) NULL ,
saida_col VARCHAR(10) NULL ,
data_nascimento VARCHAR(10) NULL ,
sexo_pessoa CHAR NULL ,
estado VARCHAR(2) NULL ,
CEP INT NULL ,
cidade VARCHAR(50) NULL ,
logradouro VARCHAR(70) NULL ,
bairro VARCHAR(60) NULL ,
numero VARCHAR(5) NULL ,
PRIMARY KEY (id_pessoa) )
ENGINE = InnoDB;
[color=brown]-- -----------------------------------------------------
– Table boletim_virtual.Professor
– -----------------------------------------------------[/color]
CREATE TABLE IF NOT EXISTS boletim_virtual.Professor (
Pessoa_id_pessoa INT NOT NULL ,
curriculo TEXT NULL ,
disc_leciona VARCHAR(9) NULL ,
PRIMARY KEY (Pessoa_id_pessoa) ,
INDEX fk_Professor_Pessoa (Pessoa_id_pessoa ASC) ,
CONSTRAINT fk_Professor_Pessoa
FOREIGN KEY (Pessoa_id_pessoa )
REFERENCES boletim_virtual.Pessoa (id_pessoa )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
Agradeço a ajuda,
Att. Gustavo Fontolan