Mysql
 sql >> Base de données >  >> RDS >> Mysql

REMPLACER contre INSERT en SQL

Selon la documentation , la différence est :

Alors qu'est-ce que ça fait :

  • Essayez de faire correspondre la ligne à l'aide de l'un des index disponibles ;
  • Si la ligne n'existe pas déjà :ajoutez-en une nouvelle ;
  • Si la ligne existe déjà :supprimez la ligne existante et ajoutez-en une nouvelle par la suite.

Quand l'utilisation de ceci peut-elle devenir utile sur un insert séparé et update déclarations ?

  • Vous pouvez l'appeler en toute sécurité, et vous n'avez pas à vous soucier des lignes existantes (une instruction contre deux) ;
  • Si vous souhaitez que les données associées soient supprimées lors de l'inserting / updating , vous pouvez utiliser replace  : il supprime également toutes les données associées );
  • Lorsque les déclencheurs doivent se déclencher et que vous attendez une insert (mauvaise raison, d'accord).