Exercício 13.27
Página 1 de 1
Exercício 13.27
CREATE TABLE categoria (
codigo_categoria SERIAL NOT NULL PRIMARY KEY,
nome_categoria VARCHAR(20) NOT NULL
);
INSERT INTO categoria (nome_categoria)
SELECT DISTINCT
categoria
FROM produto
ORDER BY categoria;
--Na tabela de produtos, adicione uma coluna
--codigo_categoria INT NULL
ALTER TABLE produto ADD COLUMN
codigo_categoria INT NULL;
--Faça um UPDATE que altere o valor desta nova
--coluna com o código da categoria apropriada (com
--auxílio do professor
UPDATE produto
SET codigo_categoria =
(SELECT categoria.codigo_categoria
FROM categoria
WHERE categoria.nome_categoria = produto.categoria)
--Altere a nova coluna para NOT NULL
ALTER TABLE produto
ALTER COLUMN codigo_categoria set not null;
--Remova a coluna antiga de categoria
ALTER TABLE produto
DROP COLUMN categoria;
--Adicione uma constraint para definir a chave estrangeira
ALTER TABLE produto
ADD CONSTRAINT fk_produto_categoria
FOREIGN KEY (codigo_categoria) REFERENCES categoria(codigo_categoria);
--Adicione uma constraint para impedir preços
--negativos aos produtos
ALTER TABLE produto
ADD CONSTRAINT check_preco_negativo
CHECK (preco >= 0);
codigo_categoria SERIAL NOT NULL PRIMARY KEY,
nome_categoria VARCHAR(20) NOT NULL
);
INSERT INTO categoria (nome_categoria)
SELECT DISTINCT
categoria
FROM produto
ORDER BY categoria;
--Na tabela de produtos, adicione uma coluna
--codigo_categoria INT NULL
ALTER TABLE produto ADD COLUMN
codigo_categoria INT NULL;
--Faça um UPDATE que altere o valor desta nova
--coluna com o código da categoria apropriada (com
--auxílio do professor
UPDATE produto
SET codigo_categoria =
(SELECT categoria.codigo_categoria
FROM categoria
WHERE categoria.nome_categoria = produto.categoria)
--Altere a nova coluna para NOT NULL
ALTER TABLE produto
ALTER COLUMN codigo_categoria set not null;
--Remova a coluna antiga de categoria
ALTER TABLE produto
DROP COLUMN categoria;
--Adicione uma constraint para definir a chave estrangeira
ALTER TABLE produto
ADD CONSTRAINT fk_produto_categoria
FOREIGN KEY (codigo_categoria) REFERENCES categoria(codigo_categoria);
--Adicione uma constraint para impedir preços
--negativos aos produtos
ALTER TABLE produto
ADD CONSTRAINT check_preco_negativo
CHECK (preco >= 0);
Tópicos semelhantes
» Exercício adicional 21/08
» Exercício 3.13.5 - MaiorMenor10Numeros
» Exercício 11.17
» Exercício 3.10.3 - 1 a 100 (while)
» Exercício 5.20
» Exercício 3.13.5 - MaiorMenor10Numeros
» Exercício 11.17
» Exercício 3.10.3 - 1 a 100 (while)
» Exercício 5.20
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos