Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] SINTAXE CREATE TABLE - PRIMARY KEY

Olá, tudo bem?

Durante a execução da criação da tabela por meio da sintaxe da CREATE TABLE, percebi que o instrutor definiu a PRIMARY KEY no final, porém, eu fiz de uma outra forma, definindo a PRIMARY KEY já no momento da indicação da restrição da coluna. Da seguinte forma:


 CREATE TABLE PRODUTOS (
 CODIGO VARCHAR(10) PRIMARY KEY,
 DESCRITOR VARCHAR(50) NULL, 
 SABOR VARCHAR (50) NULL, 
 TAMANHO VARCHAR (50) NULL, 
 EMBALAGEM VARCHAR (50) NULL, 
 PRECO_LISTA FLOAT);

Dessa forma o código também esta exato? Ou posso enfrentar algum problema?

Possuo outra dúvida: Quando eu defino uma coluna como PRIMARY KEY, já é subentendido que esta coluna é uma coluna NOT NULL, correto? Sendo assim, se eu defino uma coluna já na sua indicação como PRIMARY KEY (assim como realizado no exemplo acima) não é necessário que eu defina a restrição NOT NULL, correto?

Obrigado!

2 respostas
solução!

Olá Halysson, tudo bem com você?

Sim, podemos definir a PRIMARY KEY diretamente na definição da coluna. A sintaxe que você utilizou está correta e não traz nenhum problema. A escolha entre definir a PRIMARY KEY no momento da criação da coluna ou ao final da declaração da tabela é uma questão de preferência pessoal e pode variar de acordo com o estilo de codificação de cada um.

Quanto à sua segunda pergunta, você está correto. Quando uma coluna é definida como PRIMARY KEY, ela automaticamente se torna NOT NULL, pois uma chave primária não pode conter valores nulos. Portanto, se você já definiu uma coluna como PRIMARY KEY, não é necessário adicionar a restrição NOT NULL.

A seguir, perceba que ao executar o script que você mostrou, automaticamente a coluna codigo que é uma chave primária, foi definida como NOT NULL (nullabe = NO).

Imagem que mostra a coluna código como not null

Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade. Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Muito obrigado pela ótima solução Rafael,

Abraços.