Bom dia
Estou tendo um problema ao tentar inserir registros em uma tabela, pelo que entendi o erro é na relação de chaves estrangeiras, porem ao verificar o meu sql de criação de tabela a relação entre chaves aparentemente esta correta.
-
segue erro da aplicação formulario:
Erro ao incluir na base de dados:
Cannot add or update a child row: a foreign key constraint fails (sicam2
.modelo_tipo
, CONSTRAINTfk_modelo_tipo_tipo_municao1
FOREIGN KEY (tipo_municao_pk_tipomunicaoid
) REFERENCEStipo_municao
(pk_tipomunicaoid
) ON DELETE NO ACTION ON UPDATE NO ) -
segue o insert que a aplicação esta tentando fazer:
INSERT INTO modelo_tipo (tipomodeloid, num_modelo, desc_modelo, quant_cartucho, quant_cano, comp_cano, und_medida, sentido_raia, quant_raia, usuarioid, ativo, data_cadastro, data_alteracao, imagem, tipo_calibre_pk_tipocalibreid, tipo_funcionamento_pk_tipofuncionamentoid, tipo_municao_pk_tipomunicaoid, tipo_alma_pk_tipoalmaid, tipo_restricao_pk_tiporestricaoid, tipo_pais_pk_tipopaisid, tipo_registro_pk_tiporegistroid, tipo_arma_pk_tipoarmaid, tipo_fabricante_pk_tipofabricanteid, tipo_acabamento_pk_tipoacabamentoid) VALUES (0, ‘teste’, ‘teste’, ‘teste’, ‘teste’, ‘teste’, ‘teste’, ‘teste’, ‘teste’, 0, 1, ‘2022-09-18 00:00:00’, ‘2022-09-18 00:00:00’, ‘’, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1)
-segue sql usado para criar a tabela modelo_tipo:
CREATE TABLE IF NOT EXISTS sicam2
.modelo_tipo
(
tipomodeloid
INT(11) NOT NULL,
num_modelo
VARCHAR(45) NULL,
desc_modelo
VARCHAR(80) NULL,
quant_cartucho
VARCHAR(45) NULL,
quant_cano
VARCHAR(45) NULL,
comp_cano
VARCHAR(45) NULL,
und_medida
VARCHAR(45) NULL,
sentido_raia
VARCHAR(45) NULL,
quant_raia
VARCHAR(45) NULL,
usuarioid
INT(11) NULL,
ativo
TINYINT NULL,
data_cadastro
TIMESTAMP NULL,
data_alteracao
TIMESTAMP NULL,
imagem
LONGBLOB NULL,
tipo_calibre_pk_tipocalibreid
INT(11) NOT NULL,
tipo_funcionamento_pk_tipofuncionamentoid
INT(11) NOT NULL,
tipo_municao_pk_tipomunicaoid
INT(11) NOT NULL,
tipo_alma_pk_tipoalmaid
INT(11) NOT NULL,
tipo_restricao_pk_tiporestricaoid
INT(11) NOT NULL,
tipo_pais_pk_tipopaisid
INT(11) NOT NULL,
tipo_registro_pk_tiporegistroid
INT(11) NOT NULL,
tipo_arma_pk_tipoarmaid
INT(11) NOT NULL,
tipo_fabricante_pk_tipofabricanteid
INT(11) NOT NULL,
tipo_acabamento_pk_tipoacabamentoid
INT(11) NOT NULL,
PRIMARY KEY (tipomodeloid
),
INDEX fk_modelo_tipo_tipo_calibre1_idx
(tipo_calibre_pk_tipocalibreid
ASC),
INDEX fk_modelo_tipo_tipo_funcionamento1_idx
(tipo_funcionamento_pk_tipofuncionamentoid
ASC),
INDEX fk_modelo_tipo_tipo_municao1_idx
(tipo_municao_pk_tipomunicaoid
ASC),
INDEX fk_modelo_tipo_tipo_alma1_idx
(tipo_alma_pk_tipoalmaid
ASC),
INDEX fk_modelo_tipo_tipo_restricao1_idx
(tipo_restricao_pk_tiporestricaoid
ASC),
INDEX fk_modelo_tipo_tipo_pais1_idx
(tipo_pais_pk_tipopaisid
ASC),
INDEX fk_modelo_tipo_tipo_registro1_idx
(tipo_registro_pk_tiporegistroid
ASC),
INDEX fk_modelo_tipo_tipo_arma1_idx
(tipo_arma_pk_tipoarmaid
ASC),
INDEX fk_modelo_tipo_tipo_fabricante1_idx
(tipo_fabricante_pk_tipofabricanteid
ASC),
INDEX fk_modelo_tipo_tipo_acabamento1_idx
(tipo_acabamento_pk_tipoacabamentoid
ASC),
CONSTRAINT fk_modelo_tipo_tipo_calibre1
FOREIGN KEY (tipo_calibre_pk_tipocalibreid
)
REFERENCES sicam2
.tipo_calibre
(pk_tipocalibreid
)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_modelo_tipo_tipo_funcionamento1
FOREIGN KEY (tipo_funcionamento_pk_tipofuncionamentoid
)
REFERENCES sicam2
.tipo_funcionamento
(pk_tipofuncionamentoid
)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_modelo_tipo_tipo_municao1
FOREIGN KEY (tipo_municao_pk_tipomunicaoid
)
REFERENCES sicam2
.tipo_municao
(pk_tipomunicaoid
)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_modelo_tipo_tipo_alma1
FOREIGN KEY (tipo_alma_pk_tipoalmaid
)
REFERENCES sicam2
.tipo_alma
(pk_tipoalmaid
)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_modelo_tipo_tipo_restricao1
FOREIGN KEY (tipo_restricao_pk_tiporestricaoid
)
REFERENCES sicam2
.tipo_restricao
(pk_tiporestricaoid
)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_modelo_tipo_tipo_pais1
FOREIGN KEY (tipo_pais_pk_tipopaisid
)
REFERENCES sicam2
.tipo_pais
(pk_tipopaisid
)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_modelo_tipo_tipo_registro1
FOREIGN KEY (tipo_registro_pk_tiporegistroid
)
REFERENCES sicam2
.tipo_registro
(pk_tiporegistroid
)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_modelo_tipo_tipo_arma1
FOREIGN KEY (tipo_arma_pk_tipoarmaid
)
REFERENCES sicam2
.tipo_arma
(pk_tipoarmaid
)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_modelo_tipo_tipo_fabricante1
FOREIGN KEY (tipo_fabricante_pk_tipofabricanteid
)
REFERENCES sicam2
.tipo_fabricante
(pk_tipofabricanteid
)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_modelo_tipo_tipo_acabamento1
FOREIGN KEY (tipo_acabamento_pk_tipoacabamentoid
)
REFERENCES sicam2
.tipo_acabamento
(pk_tipoacabamentoid
)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
-segue sql de uma das tabelas que tem relação entre as chaves estrangeiras, nesse caso foi tipo_municao:
CREATE TABLE IF NOT EXISTS sicam2
.tipo_municao
(
pk_tipomunicaoid
INT(11) NOT NULL AUTO_INCREMENT,
municao
VARCHAR(45) NOT NULL,
municao_calibre
VARCHAR(45) NOT NULL,
data_cadastro
TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
data_alteracao
TIMESTAMP NULL,
usuarioid
INT(11) NULL,
ativo
TINYINT NOT NULL,
PRIMARY KEY (pk_tipomunicaoid
),
INDEX CAL
(municao_calibre
ASC),
INDEX CODIGO
(pk_tipomunicaoid
ASC),
INDEX MUNICAO
(municao
ASC))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8
Muito obrigado desde já