Não entendi oq é o 'ADD CONSTRAINT'
Não entendi oq é o 'ADD CONSTRAINT'
Olá Marcos, tudo bem?
Após a criação da tabela ESTOQUE, é importante essa alteração na tabela para que seja aplicado uma regra "restrição" que garanta a integridade dos dados, ou seja, garanta que o dado que "veio de outra tabela" não sofra modificações, permanecendo íntegro. .
Essa restrição recebe um nome para que possamos identificá-la, nesse caso o nome da restrição é CE_ESTOQUE_LIVROS, e ela foi aplicada no campo ID_LIVRO. .
Observe que a tabela ESTOQUE possui o campo ID_LIVRO, mas esse campo ID_LIVRO "vem de outro lugar". Se, ID_LIVRO vem de outro lugar, lá onde ele nasceu ele é considerado uma chave primária e aqui ele é uma chave estrangeira. Então, após o nome da restrição, identificamos e separamos em duas linhas quem é quem. Quem é o campo estrangeiro que faz referência ao campo chave primária da tabela LIVROS. .
Exemplo do código, com comentários:
ALTER TABLE ESTOQUE --vamos alterar a tabela ESTOQUE
ADD CONSTRAINT CE_ESTOQUE_LIVROS --vamos adicionar/criar uma restrição/regra de integridade, para garantir que os dados não sofram modificações, permanecendo íntegros e vamos criar um nome (CE_ESTOQUE_LIVROS) para essa restrição
FOREIGN KEY (ID_LIVRO) --vamos informar que queremos aplicar a restrição no campo ID_LIVRO, massss como esse campo já existe em outra tabela e lá ele é uma chave primária PRIMARY KEY, então aqui ele é identificado como chave estrangeira FOREIGN KEY.
REFERENCES LIVROS(ID); --já que o campo ID_LIVRO é considerado estrangeiro e foi aplicado a restrição nele, então, é preciso informar de que tabela ele vem e como chama a chave primaria lá na tabela origem, referenciando "esclarecendo" a origem desse ID.
Espero ter ajudado!
Bons estudos!
Cida.