O SQLite é um RDBMS, usado para gerenciar os dados do banco de dados, que é colocado nas linhas e colunas da tabela. Este artigo nos ajuda a entender o que é uma restrição única no sqlite, bem como como funciona no sqlite.
Qual é a restrição única em Sqlite
Uma restrição exclusiva garante que os dados na coluna sejam únicos, o que significa que nenhum campo da mesma coluna contém valores semelhantes. Por exemplo, criamos uma coluna, email e a definimos com a restrição exclusiva, para garantir que nenhum email inserido na coluna seja o mesmo que o outro registro da coluna.
Qual é a diferença entre a restrição de chave única e principal em sqlite
Ambas as restrições, chave primária e exclusiva, garantem que nenhuma entrada duplicada seja inserida na tabela, mas a diferença é; A tabela deve conter apenas uma chave primária, enquanto a restrição única pode ser usada para mais de uma coluna na mesma tabela.
Quão única restrição será definida em SQLite
A restrição exclusiva pode ser definida na coluna única ou nas várias colunas no SQLITE.
Quão única restrição é definida para uma coluna
Uma restrição única pode ser definida como uma coluna, pela qual pode garantir que nenhum valores semelhantes possa entrar em qualquer campo dessa coluna. A sintaxe geral de definir a restrição única em uma coluna é:
Criar tabela tabela_name (column1 datatype exclusivo, colunl2 datatype);A explicação disso é:
Para entender essa sintaxe, considere um exemplo de criação de uma tabela para estudantes_data que possui duas colunas, uma é de std_id e a outra é de st_name, deveriam definir a coluna, std_id, com a restrição única para que nenhum dos alunos possa ter std_id semelhante como:
Criar tabela estudantes_data (std_id inteiro exclusivo, texto std_name);Insira os valores usando:
Inserir em estudantes_data valores (1, 'John'), (2, 'Paul');Agora, adicionaremos outro nome do aluno em que o std_id é 1:
Inserir em valores de estudantes_data (1, 'hannah');Podemos ver na saída, ele gerou o erro de inserir o valor de std_id porque foi definido com a restrição única, o que significa que nenhum valor pode ser duplicado com os outros valores dessa coluna.
Como a restrição única é definida para várias colunas
Podemos definir várias colunas com a restrição exclusiva, o que garante que não haja duplicação dos dados inseridos em todas as linhas ao mesmo tempo. Por exemplo, se tivermos que escolher cidades para uma viagem a três grupos de pessoas (A, B e C), não podemos atribuir a mesma cidade a todos os três grupos, isso pode ser feito usando a restrição única.
Por exemplo, esses três cenários podem ser possíveis:
Grupo A | Group_b | Group_c |
---|---|---|
Flórida | Flórida | Boston |
Nova Iorque | Flórida | Flórida |
Flórida | Flórida | Flórida |
Mas o cenário a seguir não é possível se estivermos usando as restrições exclusivas:
Grupo A | Group_b | Group_c |
---|---|---|
Flórida | Flórida | Flórida |
A sintaxe geral de usar a restrição exclusiva às várias colunas é:
Criar tabela tabela_name (colunl1 datatype, column2, exclusivo (column1, column2));A explicação disso é:
Para entender isso, consideraremos o exemplo acima e executaremos o seguinte comando para criar uma tabela de trip_data:
Criar tabela trip_data (group_a text, group_b text, group_c text, exclusivo (group_a, group_b, group_c));Vamos inserir os valores de atribuir suas cidades:
Inserir em Trip_data Valores ('Florida', 'Florida', 'Boston'), ('Nova York', 'Florida', 'Florida'), ('Florida', 'Florida', 'Flórida');Agora, inseriremos a mesma cidade em todas as colunas de Trip_data:
Inserir em valores trip_data ('Florida', 'Florida', 'Florida');Podemos ver na saída, a duplicação dos dados em todas as colunas que são definidas pela restrição exclusiva não é permitida e o erro gerado da restrição exclusiva falhou.
Como adicionar a restrição única à tabela existente
No SQLITE, podemos adicionar a restrição usando o comando ALTER, por exemplo, temos uma tabela estudantes_data com colunas std_id, std_name, queremos adicionar uma restrição std_id à tabela, estudantes_data:
Como abandonar a restrição única para a tabela existente
Como outros bancos de dados, não podemos abandonar a restrição usando os comandos Drop e Alter, para excluir as restrições únicas, devemos seguir o mesmo procedimento que optamos por adicionar a restrição a uma tabela existente e redefinir a estrutura da tabela.
Vamos considerar o exemplo acima novamente e remover as restrições únicas dele:
PRAGMA FOREGN_KEYS = OFF;Conclusão
A restrição exclusiva é usada nos bancos de dados para restringir a duplicação dos valores inseridos nos campos da tabela, assim como a restrição de chave primária, mas há uma diferença entre os dois; Uma tabela pode ter apenas uma chave primária, enquanto uma tabela pode ter colunas -chave exclusivas mais de uma. Neste artigo, discutimos o que é uma restrição única e como ela pode ser usada no sqlite com a ajuda de exemplos.