sql >> Databasteknik >  >> RDS >> Mysql

Förhindra dubbletter av värden i databasen - mysql

Du vill ha ett unikt index på event_id och day :

create unique index idx_recurrence_event_day on recurrence(event_id, day)

Detta kommer att förhindra duplicering som du inte vill ha.

Om du redan har dubbletter finns det olika sätt att bli av med dem. Det skulle dock vara enklare om du hade ett unikt id för varje rad, vilket är en anledning till att en auto-inkrementerad primärnyckel är användbar i alla tabeller.

Ett sätt att bli av med dem även utan ett unikt ID är att använda:

alter ignore table recurrence add unique (event_id, day);

Personligen gillar jag inte den här metoden eftersom att lägga till ett index inte borde radera rader, men det här är ett giltigt MySQL-tillägg.



  1. Skapa kapslade JSON-arrayer med FOR JSON PATH

  2. Grupperad sammanfogning:Beställa och ta bort dubbletter

  3. Exkludera en kolumn med SELECT * [utom kolumnA] FRÅN tabellA?

  4. Vad är @@SERVICENAME i SQL Server?