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

Създаване, ако запис не съществува, в противен случай актуализиране?

Много разработчици все още изпълняват заявка, за да проверят дали поле присъства в таблицата и след това изпълняват заявка за вмъкване или актуализиране според резултата от първата заявка. Опитайте да използвате синтаксиса ON DUPLICATE KEY, това е много по-бързо и по-добре след това изпълнява 2 заявки. Повече информация можете да намерите тук

ако искате да запазите същата стойност за c, можете да направите актуализация със същата стойност

разликата между 'замени' и 'при дублиран ключ':

ако таблицата ви няма първичен ключ или уникален ключ, замяната няма никакъв смисъл.

Можете също да използвате VALUES функция, за да избегнете необходимостта да посочвате действителните стойности два пъти. напр. вместо

INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=6;

можете да използвате

INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(c);

Където VALUES(c) ще се оцени до стойността, посочена по-рано (6).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Инструкция за вмъкване, която проверява за дублиране преди вмъкване

  2. ПРИСЪЕДИНЕТЕ СЕ с GROUP BY в нормализирана БД за ресурси, теми и глави

  3. MySQL DELETE FROM с подзаявка като условие

  4. MySQL Един към много към JSON формат

  5. Как да получите вчерашната дата в MySQL