sql >> Databasteknik >  >> RDS >> Mysql

REPLACE kontra INSERT i SQL

Enligt dokumentationen , skillnaden är:

Så vad det gör:

  • Försök att matcha raden med ett av de tillgängliga indexen;
  • Om raden inte redan finns:lägg till en ny;
  • Om raden redan finns:ta bort den befintliga raden och lägg till en ny efteråt.

När kan det vara användbart att använda detta över separat insert och update uttalanden?

  • Du kan lugnt kalla detta, och du behöver inte oroa dig för befintliga rader (ett uttalande mot två);
  • Om du vill att relaterade data ska tas bort när du inserting / update , kan du använda replace :den raderar också all relaterad data);
  • När utlösare måste aktiveras och du förväntar dig en insert (dåligt skäl, okej).


  1. Hur skapar man en array från denna resultatuppsättning (kapslade kategorier lagrade i en databas med genomgångsmodell)?

  2. Använda funktionell notation i PostgreSQL-frågor istället för punktnotation

  3. Är primärnycklarna passé?

  4. SendGrid för PHP är långsam. Är icke-blockerande förfrågningar möjliga?