Exercício Criativo 5: Seu Primeiro Robô de Dados
Sua Missão: Programar sua primeira Database Function no Supabase! Vamos criar um robô simples que mora dentro do seu banco de dados e executa uma tarefa específica quando chamado.
Agora que você sabe o que são funções e como elas podem automatizar tarefas ou encapsular lógica, é hora de construir a sua.
O Desafio:
Escolha UMA das ideias de função abaixo e tente implementá-la no SQL Editor do Supabase. Não precisa ser super complexa, o objetivo é entender a estrutura e o processo de criação.
Ideias para seu Robô:
Robô Mensageiro: Crie uma função chamada
saudacao_personalizadaque recebe um parâmetronome_agente(do tipotext) e retorna uma saudação (do tipotext), como por exemplo: "Olá, [nome_agente]! Missão aceita.".Dica: Use concatenação de strings (
||).Linguagem: Pode ser
sqlouplpgsql.Retorno:
text.
Robô Calculador de Nível: Crie uma função chamada
calcular_nivel_poderque recebe dois parâmetros:habilidade_base(int) ebonus_equipamento(int). A função deve retornar a soma dos dois, representando o nível de poder total.Linguagem:
plpgsqlé mais adequada para variáveis e cálculos, massqlpode funcionar se for sóSELECT habilidade_base + bonus_equipamento;.Retorno:
integer.
Robô Verificador de Atividade: Crie uma função chamada
verificar_agente_ativoque recebe umid_agente(uuid) como parâmetro. A função deve consultar a tabelaagentese retornartruese o agente com esse ID estiver com a colunaativomarcada comotrue, efalsecaso contrário.Dica: Use
SELECT ativo INTO variavel_retorno FROM agentes WHERE id = id_agente;dentro da função PL/pgSQL.Linguagem:
plpgsql.Retorno:
boolean.
(Avançado) Robô Promotor: Crie uma função chamada
promover_agenteque recebe umid_agente(uuid). A função deve aumentar onivel_habilidadedo agente em 1, mas somente se o nível atual for menor que 10. A função não precisa retornar nada (void).Dica: Use
UPDATE ... WHERE id = id_agente AND nivel_habilidade < 10;dentro da função.Linguagem:
plpgsql.Retorno:
void.
Como Fazer:
Vá para o SQL Editor (
</>) no seu projeto Supabase.Escreva o comando
CREATE OR REPLACE FUNCTION ...para a ideia que você escolheu.Preste atenção na sintaxe: nome da função, parâmetros (com tipos), tipo de retorno (
RETURNS), linguagem (LANGUAGE) e o corpo da função entreAS $$ ... $$;.Clique em "RUN" para criar a função.
Teste sua função! Use um comando
SELECTpara chamá-la. Exemplos:SELECT saudacao_personalizada("Sombra");SELECT calcular_nivel_poder(8, 2);SELECT verificar_agente_ativo("uuid-001");SELECT promover_agente("uuid-002");(Depois verifique a tabelaagentespara ver se funcionou).
Como Entregar:
Copie e cole o código
CREATE FUNCTIONque você escreveu.Copie e cole o comando
SELECTque você usou para testar sua função e o resultado que obteve.
Objetivo: Perder o medo de criar funções no banco de dados! Entender a sintaxe básica e ver como elas podem ser chamadas para executar tarefas.
Atualizado

