sql >> Databáze >  >> RDS >> Mysql

Nejlepší způsob, jak se vyhnout duplicitnímu vstupu do databáze mysql

Prvním krokem by bylo nastavení jedinečného klíče na stůl:

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

Pak se musíte rozhodnout, co chcete dělat, když existuje duplikát. Měli byste:

  1. ignorovat?

    INSERT IGNORE INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo");
    
  2. Přepsat dříve zadaný záznam?

    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. Aktualizovat nějaké počítadlo?

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


  1. Porovnání řešení Oracle RAC HA s Galera Cluster pro MySQL nebo MariaDB

  2. MariaDB JSON_ARRAY() Vysvětleno

  3. Serializovatelná úroveň izolace

  4. Oracle SQL Developer:Selhání – Test se nezdařil:Síťový adaptér nemohl navázat spojení?