Database
 sql >> Base de Dados >  >> RDS >> Database

SQL, chaves únicas e primárias


Com uma tabela criada com este comando:
CREATE TABLE people (
  age INT NOT NULL,
  name CHAR(20) NOT NULL
);

Podemos inserir um item mais de uma vez.

E, em particular, podemos ter colunas que repetem o mesmo valor.

Podemos forçar uma coluna a ter apenas valores únicos usando o UNIQUE restrição de chave:
CREATE TABLE people (
  age INT NOT NULL,
  name CHAR(20) NOT NULL UNIQUE
);

Agora, se você tentar adicionar o ‘Flavio’ duas vezes:
INSERT INTO people VALUES (37, 'Flavio');
INSERT INTO people VALUES (20, 'Flavio');

Você receberia um erro:
ERROR:  duplicate key value violates unique constraint "people_name_key"
DETAIL:  Key (name)=(Flavio) already exists.

Uma chave primária é uma chave única que tem outra propriedade:é a principal maneira de identificar uma linha na tabela.
CREATE TABLE people (
  age INT NOT NULL,
  name CHAR(20) NOT NULL PRIMARY KEY
);

A chave primária pode ser um email em uma lista de usuários, por exemplo.

A chave primária pode ser um id exclusivo que atribuímos a cada registro automaticamente.

Seja qual for esse valor, sabemos que podemos usá-lo para referenciar uma linha na tabela.