Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapobiegaj duplikowaniu wartości w bazie danych - mysql

Potrzebujesz unikalnego indeksu dla event_id i day :

create unique index idx_recurrence_event_day on recurrence(event_id, day)

Zapobiegnie to powielaniu, którego nie chcesz.

Jeśli masz już duplikaty, możesz się ich pozbyć na różne sposoby. Byłoby jednak łatwiej, gdybyś miał unikalny identyfikator dla każdego wiersza, co jest jednym z powodów, dla których automatycznie zwiększany klucz podstawowy jest przydatny we wszystkich tabelach.

Jednym ze sposobów na pozbycie się ich nawet bez unikalnego identyfikatora jest użycie:

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

Osobiście nie podoba mi się ta metoda, ponieważ dodanie indeksu nie powinno usuwać wierszy, ale jest to prawidłowe rozszerzenie MySQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ClassNotFoundException:com.mysql.jdbc.GoogleDriver

  2. PDO bind_param to niezdefiniowana metoda

  3. mysql znajdź najmniejszy + unikalny identyfikator dostępny

  4. Pobieranie wierszy dodanych w ostatniej godzinie

  5. Zapytanie MySQL - uzyskiwanie brakujących rekordów podczas korzystania z grupowania