MySQL - TRUNCATE em tabelas com CONSTRAINT de chave estrangeira
Na fase de desenvolvimento e testes é muito comum alterar as propriedades de suas tabelas e preenche-las com informações. Porém chega um momento que queremos resetar tudo para colocar nosso banco em produção e para isso é sempre bom dar um TRUNCATE nas tabelas, a fim de zera-las, tanto na questão dos dados quanto dos incrementadores (AUTO_INCREMENT). Dependendo de como seu banco foi modelado podemos ver frustradas estas tentativas. No caso de tabelas com CONSTRAINTS nas chaves estrangeiras simplesmente o MySQL não vai obedecer ao seu comando TRUNCATE. Então o que fazer? Uma solução simples é setar a checagem das CONSTRAINTS para false, truncar a tabela e depois voltar a checagem. O procedimento para isto é bem simeples: Execute uma query com o comando: "mysql> SET FOREIGN_KEY_CHECKS = 0;" Execute TRUNCATE em suas tabelas Execute uma query com o comando: "mysql> SET FOREIGN_KEY_CHECKS = 1;" Desta forma você consegue zerar suas tabelas...