CREATE TABLE e restrições
Crie uma nova tabela e defina as regras que os dados dela devem seguir.
Sintaxe
CREATE TABLE name (column type [PRIMARY KEY] [NOT NULL] [UNIQUE] [DEFAULT value] [REFERENCES other (column)] [GENERATED ALWAYS AS IDENTITY]);CREATE TABLE name AS SELECT ...;
- PRIMARY KEY: única e obrigatória.
- REFERENCES: o valor deve existir na outra tabela.
- UNIQUE proíbe repetição numa coluna que não é a chave primária.
- GENERATED ALWAYS AS IDENTITY preenche uma chave inteira para você (MySQL: AUTO_INCREMENT; SQL Server: IDENTITY).
- CREATE TABLE AS SELECT copia uma consulta para uma tabela nova. Outros bancos costumam usar SELECT INTO.
Exemplo
CREATE TABLE notes (note_id integer PRIMARY KEY, body text NOT NULL, order_id integer REFERENCES orders (order_id));
Uma tabela nova; o banco de dados recusa uma anotação que se refere a um pedido inexistente.
Tabelas usadas: orders. Experimente em uma lição abaixo.
Erros comuns
- Uma chave estrangeira só é verificada quando as linhas mudam. Excluir um cliente que ainda tem pedidos é recusado se os pedidos se referirem a ele.
- CREATE TABLE AS copia os dados, não a chave primária nem outras restrições. Adicione-as depois se precisar.