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

INSERT INTO ... ПРИ ДУБЛИРАНА АКТУАЛИЗАЦИЯ на всички стойности

INSERT INTO … ON DUPLICATE KEY UPDATE работи по следния начин:

  • опитва се да вмъкне ред както обикновено
  • ако възникне нарушение на ограничение в която и да е колона, той изпълнява UPDATE израз вместо на съществуващия ред, с който INSERT противоречиво изявление

Това просто означава, че ако UPDATE сам операторът би бил успешен, неговият ON DUPLICATE KEY UPDATE еквивалентът също ще работи. Това означава, че очевидно не можете да нарушите никакви ограничения в UPDATE или всичко ще се провали (напр. опит за задаване на стойност на UNIQUE колона, която вече съществува в друг ред).

Ако зададете същата стойност в същата колона отново, това по същество е без операция. Стойността в колоната не се променя и следователно също не може да причини грешки (да приемем, че нямате наистина фънки BEFORE UPDATE тригери, които могат да се държат неправилно). Броят на колоните тук е без значение, можете да промените толкова или колкото по-малко в един израз, колкото искате.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пребройте и групирайте непразни стойности в MySQL

  2. ln:/usr/lib/libmysqlclient.18.dylib:Файлът съществува

  3. Трябва ли едно изброяване в MySQL да НЕ е NULL?

  4. PHP 7 не може да намери MySQLi

  5. System.Data.SqlClient пространство от имена за MySQL?