1
resposta

Estou tendo esta dificuldade da Aula 4 de Transformação ETL na Carga da Tabela Fato 001

Gravacao tabela Fato 001.0 - Caused by: java.sql.SQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (dwsucos.fato_001, CONSTRAINT dim_produto_fato_001_fk FOREIGN KEY (Cod_Produto) REFERENCES dim_produto (Cod_Produto))

CREATE TABLE `fato_001` (
    `Cod_Cliente` VARCHAR(50) NOT NULL COLLATE 'utf8_general_ci',
    `Cod_Tempo` VARCHAR(50) NOT NULL COLLATE 'utf8_general_ci',
    `Cod_Organizacional` VARCHAR(50) NOT NULL COLLATE 'utf8_general_ci',
    `Cod_Produto` VARCHAR(50) NOT NULL COLLATE 'utf8_general_ci',
    `Cod_Fabrica` VARCHAR(50) NOT NULL COLLATE 'utf8_general_ci',
    `Faturamento` DOUBLE NOT NULL,
    `Unidade_Vendida` DOUBLE NOT NULL,
    `Quantidade_Vendida` DOUBLE NOT NULL,
    `Imposto` DOUBLE NOT NULL,
    `Custo_Variavel` DOUBLE NOT NULL,
    INDEX `dim_organizacional_fato_001_fk` (`Cod_Organizacional`),
    INDEX `dim_tempo_fato_001_fk` (`Cod_Tempo`),
    INDEX `dim_fabrica_fato_001_fk` (`Cod_Fabrica`),
    INDEX `dim_produto_fato_001_fk` (`Cod_Produto`),
    INDEX `dim_cliente_fato_001_fk` (`Cod_Cliente`),
    CONSTRAINT `dim_cliente_fato_001_fk` FOREIGN KEY (`Cod_Cliente`) REFERENCES `dim_cliente` (`Cod_Cliente`),
    CONSTRAINT `dim_fabrica_fato_001_fk` FOREIGN KEY (`Cod_Fabrica`) REFERENCES `dim_fabrica` (`Cod_Fabrica`),
    CONSTRAINT `dim_organizacional_fato_001_fk` FOREIGN KEY (`Cod_Organizacional`) REFERENCES `dim_organizacional` (`Cod_Organizacional`),
    CONSTRAINT `dim_produto_fato_001_fk` FOREIGN KEY (`Cod_Produto`) REFERENCES `dim_produto` (`Cod_Produto`),
    CONSTRAINT `dim_tempo_fato_001_fk` FOREIGN KEY (`Cod_Tempo`) REFERENCES `dim_tempo` (`Cod_Tempo`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;
1 resposta

Olá Carlos tudo certo??

Já verificou a sua tabela Produto se teve algum tipo alterado? Em alguns casos ele pode ter modificado de VARCHAR para algum outro tipo e isso impede a ligação das tabelas.

Olhando a sintaxe me parece tudo certo, por isso o palpite para abrir as tabelas de produtos e verificar também a de Fato, pois dependendo do método de criação das tabelas que usou, pode acontecer esse tipo de coisa.

Fico aguardando seu retorno!