Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Evite valores duplicados no banco de dados - mysql


Você deseja um índice exclusivo em event_id e day :
create unique index idx_recurrence_event_day on recurrence(event_id, day)

Isso evitará a duplicação que você não deseja.

Se você já possui duplicatas, existem várias maneiras de se livrar delas. No entanto, seria mais fácil se você tivesse um id exclusivo para cada linha, razão pela qual uma chave primária auto-incrementada é útil em todas as tabelas.

Uma maneira de se livrar deles mesmo sem um id exclusivo é usar:
alter ignore table recurrence add unique (event_id, day);

Pessoalmente, não gosto desse método porque adicionar um índice não deve excluir linhas, mas essa é uma extensão válida do MySQL.