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_personalizada
que 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
sql
ouplpgsql
.Retorno:
text
.
Robô Calculador de Nível: Crie uma função chamada
calcular_nivel_poder
que 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, massql
pode funcionar se for sóSELECT habilidade_base + bonus_equipamento;
.Retorno:
integer
.
Robô Verificador de Atividade: Crie uma função chamada
verificar_agente_ativo
que recebe umid_agente
(uuid) como parâmetro. A função deve consultar a tabelaagentes
e retornartrue
se o agente com esse ID estiver com a colunaativo
marcada comotrue
, efalse
caso 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_agente
que recebe umid_agente
(uuid). A função deve aumentar onivel_habilidade
do 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
SELECT
para 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 tabelaagentes
para ver se funcionou).
Como Entregar:
Copie e cole o código
CREATE FUNCTION
que você escreveu.Copie e cole o comando
SELECT
que 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.
Last updated