Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PHP MySQL inserindo dados em várias tabelas


Uma solução seria usar Transações , que permitem obter o comportamento "tudo ou nada".

A ideia é a seguinte :
  • você inicia uma transação
  • você faz suas inserções/atualizações
  • se tudo estiver OK, você confirma a transação; que salvará tudo o que você fez durante esta transação
  • se não, você reverte a transação; e tudo o que você fez nele será cancelado.
  • se você não confirmar e desconectar (se seu script PHP morrer, por exemplo) , nada será confirmado, e o que você fez durante a transação não confirmada será revertido automaticamente.

Para mais informações, você pode dar uma olhada em 12.4.1. Sintaxe START TRANSACTION, COMMIT e ROLLBACK , para MySQL.


Observe que as transações estão disponíveis apenas para alguns mecanismos de banco de dados:
  • MyISAM não suporta transações
  • InnoDB faz (também suporta chaves estrangeiras, por exemplo -- é muito mais avançado que o MyISAM) .