Mysql
 sql >> база данни >  >> RDS >> Mysql

Добавяне към поле на база данни вместо презаписването му (функция MySQL UPDATE)

Опитайте да използвате INSERT ... ON DUPLICATE KEY UPDATE

Ако посочите ON DUPLICATE KEY UPDATE и се вмъкне ред, който би причинил дублирана стойност в UNIQUE индекс или PRIMARY KEY, MySQL извършва UPDATE на стария ред.

Например, ако колона a е декларирана като УНИКАЛНА и съдържа стойност 1, следните два израза имат подобен ефект:

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;

(Ефектите не са идентични за таблица, където a е колона с автоматично нарастване. С колона с автоматично нарастване, INSERT изразът увеличава стойността на автоматично нарастване, но UPDATE не.)

Клаузата ON DUPLICATE KEY UPDATE може да съдържа множество присвоявания на колони, разделени със запетаи.

С ON DUPLICATE KEY UPDATE стойността на засегнатите редове на ред е 1, ако редът е вмъкнат като нов ред, и 2, ако съществуващ ред е актуализиран.

Надявам се това да помогне.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP MySQLi разрешение е отказано, но работи от MySQL CLI

  2. Работи ли това за спиране на sql инжекциите

  3. Изтриване от MySQL таблица с ограничения на външния ключ

  4. mysqli_fetch_array() очаква параметър 1 да бъде mysqli_result, булев, даден в

  5. Как да създам постоянни връзки, които се управляват от база данни?