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

Най-добрият начин да избегнете дублиране на влизане в mysql база данни

Първата стъпка би била да зададете уникален ключ на масата:

ALTER TABLE thetable ADD UNIQUE INDEX(pageid, name);

След това трябва да решите какво искате да направите, когато има дубликат. Трябва ли:

  1. да го игнорирате?

    INSERT IGNORE INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo");
    
  2. Да се ​​презапише ли по-рано въведения запис?

    INSERT INTO thetable (pageid, name, somefield)
    VALUES (1, "foo", "first")
    ON DUPLICATE KEY UPDATE (somefield = 'first')
    
    INSERT INTO thetable (pageid, name, somefield)
    VALUES (1, "foo", "second")
    ON DUPLICATE KEY UPDATE (somefield = 'second')
    
  3. Актуализирате брояч?

    INSERT INTO thetable (pageid, name)
    VALUES (1, "foo"), (1, "foo")
    ON DUPLICATE KEY UPDATE (pagecount = pagecount + 1)
    


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

  2. Добавете външен ключ към съществуваща таблица

  3. Как да реша кога да използвам десни съединения/леви съединения или вътрешни съединения или как да определя коя таблица е от коя страна?

  4. Импортирайте SQL файл в mysql

  5. Как мога да направя ПЪЛНО ВЪНШНО ПРИСЪЕДИНЕНИЕ в MySQL?