Inserção atrasada devido a restrições de chave estrangeira

Estou tentando executar uma consulta:

INSERT
  INTO `ProductState` (`ProductId`, `ChangedOn`, `State`)
SELECT t.`ProductId`, t.`ProcessedOn`, \'Activated\'
  FROM `tmpImport` t
  LEFT JOIN `Product` p
    ON t.`ProductId` = p.`Id`
 WHERE p.`Id` IS NULL
    ON DUPLICATE KEY UPDATE
       `ChangedOn` = VALUES(`ChangedOn`)

(Não tenho certeza de que a consulta esteja correta, mas parece estar funcionando), no entanto, estou executando o seguinte problema. Estou executando esta consulta antes de criar a entrada na tabela 'Produtos' e estou tendo um problema de restrição de chave estrangeira devido ao fato de a entrada ainda não estar na tabela Produtos.

Minha pergunta é: existe uma maneira de executar essa consulta, mas aguarde até a próxima consulta (que atualiza a tabela Produto) antes de executar a parte de inserção da consulta acima? Observe também que, se a consulta for executada após a criação da entrada do produto, ela não verá mais as páginas p.Id como nulo e, portanto, falhando, portanto, ele deve ser executado antes da criação da entrada do Produt

---> Editar <--- O conceito que estou tentando alcançar é o seguinte: Para começar, estou importando um conjunto de dados para uma tabela temporária, oProduct table é uma lista de todos os produtos que foram (ou foram no passado) adicionados por meio do conjunto de dados da tabela temporária. O que eu preciso é de uma tabela separada que forneça uma alteração de estado no produto, pois às vezes o produto fica indisponível (não está mais no conjunto de dados fornecido pelo fornecedor

A tabela ProductState é a seguinte:

CREATE  TABLE IF NOT EXISTS `ProductState` (
  `ProductId` VARCHAR(32) NOT NULL ,
  `ChangedOn` DATE NOT NULL ,
  `State` ENUM('Activated','Deactivated') NULL ,
  PRIMARY KEY (`ProductId`, `ChangedOn`) ,
  INDEX `fk_ProductState_Product` (`ProductId` ASC) ,
  CONSTRAINT `fk_ProductState_Product`
    FOREIGN KEY (`ProductId` )
    REFERENCES `Product` (`Id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;

A chave estrangeira é um relacionamento de identificação com a tabela Produto Product.Id)

Essencialmente, o que estou tentando realizar é o seguinte: 1. Sempre que um novo produto (ou produto anteriormente desativado) aparece no conjunto de dados do fornecedor, o registro é criado na tabela ProductState como 'Ativado'. 2. Sempre que um produto (ativado) não aparece no conjunto de dados do fornecedor, o registro é criado como 'Desativado' na tabela ProductStat

O objetivo da tabela ProductState é rastrear os estados de ativação e desativação de um produto. Além disso, o ProductState é um relacionamento Multifuncional com a Tabela do produto, e o estado do produto será alterado apenas uma vez por dia; portanto, meu PKEY seria ProductId e ChangedDate.

questionAnswers(2)

yourAnswerToTheQuestion