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