/ / Existe uma maneira de tornar única uma linha inteira do MySQL - mysql, unique

Existe uma maneira de tornar uma linha inteira do MySQL única - mysql, unique

Eu tenho uma tabela no MySQL com 30 colunas e milhares de entradas.
Existe uma maneira de tornar cada linha exclusiva, ou seja, se uma linha já existir, não será possível entrar nessa linha novamente.

Não posso usar chaves primárias ou exclusivas aqui, porque cada coluna individualmente pode ser repetida.
Quero que a linha seja única. por exemplo: -Há uma tabela com

columns->name,age,height,weight.

Nesta coluna, não posso tornar nenhuma uma ou duas colunas únicas, mas não devo ter duas entradas com os mesmos dados.

Respostas:

10 para resposta № 1

Você precisa de uma chave primária composta.

Uma chave primária composta informa ao MySQL que você deseja que sua chave primária seja uma combinação de campos.

Mais informações aqui: Por que usar várias colunas como chaves primárias (chave primária composta)


17 for answer № 2

Você pode criar um índice exclusivo que inclua todas as colunas da sua tabela

ALTER TABLE buyers ADD UNIQUE idx_row_unique(first_name,last_name,...);

Dessa forma, você pode manter um AUTO INCREMENT chave primária para fins de associação, garantindo ainda que todos os dados em sua tabela sejam exclusivos.


4 para resposta № 3

Você pode criar UNIQUE key em todas as colunas, não em chaves únicas individuais emcada coluna. Isso significa que a combinação dos valores será única - exatamente o que você precisa. Mas observe que, se alguma coluna permitir valor nulo, se a coluna contiver null valor, será contado como único, mesmo que outra linha contenha os mesmos valores, com null pelo mesmo valor.


2 para resposta № 4

Você pode criar um índice exclusivo em mais de umcoluna. Basta colocar todas as colunas no índice. Se as colunas forem grandes, você poderá ter problemas com o tamanho máximo de um índice, mas tente primeiro e veja.