sql >> Database >  >> RDS >> Mysql

MySql - OP DUPLICATE KEY INSERT

Met ON DUPLICATE KEY UPDATE , kunt u niet invoegen in een andere tabel - er is ook geen alternatieve functie beschikbaar.

Twee aangepaste/alternatieve manieren waarop u dit kunt bereiken:

  1. Een stored procedure gebruiken zoals uiteengezet in het geaccepteerde antwoord op deze vraag:MySQL OP DUPLICATE KEY invoegen in een audit- of logtabel

  2. Een trigger maken die elke INSERT . registreerde voor uw tabel naar een andere tabel en het doorzoeken van de tabel vol met "logs" voor eventuele duplicaten.

Iets soortgelijks als dit zou moeten werken:

CREATE TABLE insert_logs (
    id int not null
);

delimiter |
CREATE TRIGGER insert_logs_trigger BEFORE INSERT ON your_table
    FOR EACH ROW BEGIN
        INSERT INTO insert_logs SET id = NEW.id;
    END;
|

Om een ​​lijst van de duplicaten in de tabel te krijgen, kunt u ons:

SELECT id FROM insert_logs HAVING COUNT(id) > 1 GROUP BY id;


  1. Android automatisch vernieuwen wanneer nieuwe gegevens in lijstweergave worden ingevoegd

  2. Hoe breng ik mijn MySQL-database over naar een andere computer?

  3. Langzaam LEFT JOIN op CTE met tijdsintervallen

  4. php while-lusvariabele voor elke derde div