sql >> Database teknologi >  >> RDS >> Mysql

Tilføjelse til et databasefelt i stedet for at overskrive det (MySQL UPDATE-funktion)

Prøv at bruge INSERT ... ON DUPLICATE KEY UPDATE

Hvis du angiver ON DUPLICATE KEY UPDATE, og der indsættes en række, der ville forårsage en dubletværdi i et UNIKT indeks eller PRIMÆR NØGLE, udfører MySQL en OPDATERING af den gamle række.

For eksempel, hvis kolonne a er erklæret som UNIQUE og indeholder værdien 1, har følgende to udsagn lignende effekt:

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;

UPDATE table SET c=c+1 WHERE a=1;

(Effekterne er ikke identiske for en tabel, hvor a er en auto-increment-kolonne. Med en auto-increment-kolonne, en INSERT sætning øger den automatiske stigningsværdi, men UPDATE ikke.)

ON DUPLICATE KEY UPDATE-udtrykket kan indeholde flere kolonnetildelinger, adskilt af kommaer.

Med ON DUPLICATE KEY UPDATE er den berørte rækkeværdi pr. række 1, hvis rækken er indsat som en ny række, og 2, hvis en eksisterende række er opdateret.

Håber dette vil hjælpe.




  1. Hvordan opretter man en primær nøgle består af to felter i Django?

  2. Hvad er der galt med min MySQL-sætning?

  3. PHP SQL:Sådan gemmer du data til flere databaser fra en html-formular ELLER hvordan du automatisk kopierer data fra en database til en anden database

  4. Find den nærmeste datetime til specificeret datetime i mysql-forespørgsel