GARANTIR DESCONTO

Fórum SQL - Declaração de chave primaria #564262

19/10/2016

0

SQL

Olá pessoal, sou aprendiz em banco de dados e queria saber qual q diferença entre criar chaves usando "CONSTRAINT" ou não.
Ex.:

Assim?

CREATE TABLE TB_TESTE(
id_teste INTEGER,
PRIMARY KEY(id_teste),
);

ou

CREATE TABLE TB_TESTE(
id_teste INTEGER,
CONSTRAINT FK_TB_TESTE PRIMARY KEY(id_teste)
);
Marcelo Torres

Marcelo Torres

Responder

Post mais votado

19/10/2016

Bom dia Marcelo.
A forma mais correta é a segunda.
Tem a ver, principalmente, com o nome da sua chave.
Fazendo com o primeiro comando, o banco vai dar o nome "dele" para a chave primária, enquanto no segundo comando você escolhe o nome que "achar melhor" (ou que seja padrão na empresa onde trabalha).

A título de curiosidade, você poderia ter criado assim também:


CREATE TABLE TB_TESTE( 
id_teste INT NOT NULL PRIMARY KEY
);



Mas ai você cai no mesmo problema do primeiro comando (o banco escolhe o nome da sua chave)

Grande abraço

Luiz Santos

Luiz Santos
Responder

Gostei + 1

Mais Posts

19/10/2016

Marcelo Torres

Mas no primeiro caso o nome da chave não seria "id_teste"? Ou seja, a chave teria o nome criado na declaração "PRIMATY KEY(id_teste)".
Responder

Gostei + 0

19/10/2016

Luiz Santos

Não.
Você está confundindo o nome da chave com a coluna da chave.

Veja a explicação do comando em partes

CONSTRAINT PK_TB_TESTE PRIMARY KEY (ID_TESTE)

CONSTRAINT = RESTRIÇÃO
PK_TB_TESTE = NOME DA CHAVE. (Poderia chamá-la de "ZÉ", não devemos, óbvio, mas que pode, pode)
PRIMARY KEY = TIPO DA CONSTRAINT / RESTRIÇÃO
(ID_TESTE) = COLUNA EM QUE SERÁ APLICADA A CONSTRAINT / RESTRIÇÃO

Ficou claro?

Grande abs
Responder

Gostei + 1

19/10/2016

Marcelo Torres

Ahh sim. Agora ficou claro. Muito obrigado! ;)
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar