Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Gostaria de saber se está correta esta forma de solução.

Na aula 2 referente ao vídeo 08 (Criação de tabela com FK) eu escrevi a solução da seguinte maneira

CREATE TABLE tabela_de_vendas (NUMERO VARCHAR(5) PRIMARY KEY NOT NULL, DATA DATE NULL, CPF VARCHAR(11) NOT NULL, MATRICULA VARCHAR(5) NOT NULL, IMPOSTO FLOAT NULL, FOREIGN KEY (MATRICULA) REFERENCES vendedores (MATRICULA), FOREIGN KEY (CPF) REFERENCES clientes (CPF))

Gostaria de saber se está correto dessa forma também.

Obrigado.

1 resposta
solução!

Olá Victor, tudo bem?

Está correto sim, é essa é mais uma das formas de criarmos tabelas, podemos dizer que essa é uma forma mais "direta" de criarmos uma tabela, assim no mesmo comando, criamos a tabela já especificando a chave primária e também as chaves estrangeiras, no vídeo o professor realizou a criação e depois a alteração da tabela para a criação das chaves estrangeiras, por questão de didática é mais fácil de compreender, porém podemos fazer dessa forma que você fez tranquilamente e na própria documentação do MySQL, tem exemplos semelhantes ao seu comando:

Na seção Table Options

CREATE TABLE t1 (
    c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    c2 VARCHAR(100),
    c3 VARCHAR(100) );

Na seção Foreign Key Constraint Examples:

CREATE TABLE parent (
    id INT NOT NULL,
    PRIMARY KEY (id)
) ENGINE=INNODB;

CREATE TABLE child (
    id INT,
    parent_id INT,
    INDEX par_ind (parent_id),
    FOREIGN KEY (parent_id)
        REFERENCES parent(id)
        ON DELETE CASCADE
) ENGINE=INNODB;