

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
De acordo com a sua documentação oficial, PostgreSQL é um sistema de gerenciamento de banco de dados relacional de objeto (SGBDRO ou ORDBMS - em inglês) de código aberto suporta grande parte do padrão SQL (Structured Query Language, ou Linguagem de Consulta Estruturada, em português) e oferece muitos recursos modernos. Observe e analise o código a seguir:
1: CREATE TABLE public.veiculo 2: ( 3: placa character(7), 4: marca character varying(50), 5: modelo character varying(50), 6: CONSTRAINT veiculo_pk PRIMARY KEY (placa) 7: ); 8: 9: CREATE TABLE public.concessionaria 10: ( 11: cnpj character(14), 12: nome_fantazia character varying(50), 13: CONSTRAINT concessionaria_pk PRIMARY KEY (cnpj) 14: ); 15: 16: CREATE TABLE public.concessionaria_veiculo 17: ( 18: concessionaria character(14), 19: veiculo character(7), 20: CONSTRAINT concessionaria_veiculo_pk PRIMARY KEY (concessionaria, veiculo), 21: CONSTRAINT concessionaria_fk FOREIGN KEY (concessionaria) 22: REFERENCES public.concessionaria (cnpj) MATCH SIMPLE 23: ON UPDATE NO ACTION 24: ON DELETE CASCADE 25: NOT VALID, 26: CONSTRAINT veiculo_fk FOREIGN KEY (veiculo) 27: REFERENCES public.veiculo (placa) MATCH SIMPLE 28: ON UPDATE NO ACTION 29: ON DELETE CASCADE 30: NOT VALID 31: ); 32: 33: INSERT INTO public.veiculo(placa, marca, modelo) VALUES (‘AAA0000’, ‘FIAT’, ‘ARGO’); 34: INSERT INTO public.veiculo(placa, marca, modelo) VALUES (‘BBB1111’, ‘FIAT’, ‘TORO’); 35: INSERT INTO public.veiculo(placa, marca, modelo) VALUES (‘CCC2222’, ‘GM’, ‘ONIX’); 36: INSERT INTO public.veiculo(placa, marca, modelo) VALUES (‘DDD3333’, ‘VW’, ‘T-CROSS’); 37: 38: INSERT INTO public.concessionaria(cnpj, nome_fantazia) VALUES (‘00000000000000’, ‘CAR MAX’); 39: INSERT INTO public.concessionaria(cnpj, nome_fantazia) VALUES (‘11111111111111’, ‘JR AUTOMOVEIS’); 40: 41: INSERT INTO public.concessionaria_veiculo(concessionaria, veiculo) VALUES (‘00000000000000’, ‘AAA0000’); 42: INSERT INTO public.concessionaria_veiculo(concessionaria, veiculo) VALUES (‘00000000000000’, ‘DDD3333’); 43: INSERT INTO public.concessionaria_veiculo(concessionaria, veiculo) VALUES (‘11111111111111’, ‘CCC2222’); 44: INSERT INTO public.concessionaria_veiculo(concessionaria, veiculo) VALUES (‘11111111111111’, ‘BBB1111’); 45: 46: DELETE FROM public.concessionaria WHERE cnpj = ‘11111111111111’; |
Após ter executado com sucesso os comandos de CREATE e INSERT, ao tentar executar o trecho do código do comando DELETE conforme apresentado, o PostgreSQL:
vai manter os registros relacionados ao CNPJ 11111111111111 nas tabelas concessionaria e concessionaria_veiculo.
vai excluir os registros relacionados ao CNPJ 11111111111111 na tabela concessionaria e vai manter os registros na tabela concessionaria_veiculo, também relacionados ao CNPJ 11111111111111.
vai excluir os registros relacionados ao CNPJ 11111111111111 na tabela concessionaria_veiculo e vai manter os registros, na tabela concessionaria, também relacionados ao CNPJ 11111111111111.
vai manter os registros relacionados ao CNPJ 11111111111111 na tabela concessionaria e vai excluir os registros na tabela concessionaria_veiculo, também relacionados ao CNPJ 11111111111111.
vai excluir os registros relacionados ao CNPJ 11111111111111 nas tabelas concessionaria e concessionaria_veiculo.