1
resposta

[Projeto] Minha solução

Antes de assistir a solução do professor em aula eu criei a minha própria, a da aula com certeza é mais simples e provavelmente mais eficiente, mas gostaria de compartilhar a minha de qualquer maneira. O uso found com certeza facilita muito a vida

create or replace function cria_curso(nome_curso varchar, nome_categoria varchar) returns void as $$
    declare
        categoria categoria;
        contador integer default 1;
        limite integer;
        retorno varchar;
        id_nova_categoria integer;
    begin
        select count(nome) from categoria into limite;
        for categoria in select * from categoria loop
            if categoria.nome = nome_categoria then
                insert into curso (nome,categoria_id) values (nome_curso, categoria.id);
                exit;
            elseif contador = limite then
                insert into categoria (nome) values (nome_categoria);
                select into id_nova_categoria id from categoria where nome = nome_categoria;
                insert into curso (nome, categoria_id) values (nome_curso, id_nova_categoria);
            end if;
            contador := contador + 1;
        end loop;
    end;
$$ language plpgsql;
1 resposta

Oi, Marcos! Tudo bem?

Desde já, peço desculpas pela demora em retornar.

Parabéns pelo desenvolvimento da consulta!

Na área de Ciência de Dados, existem diferentes maneiras de solucionarmos o mesmo problema. Nesse sentido, conforme aprofundamos os nossos conhecimentos, passamos a pensar em distintas estratégias, realizar testes e, por fim, identificar quais delas são mais proveitosas para o que queremos!

O nosso desenvolvimento enquanto estudante e profissional ocorre sobretudo a partir da proatividade, então continue sempre se dedicando desta forma que você vai longe!

Se surgir alguma dúvida, conte com o fórum.

Abraços, Marcos!