Rullst AcademyRullst Academy/Lição
Bancos de dados e SQL I · Lição 05 / 12

Inserir e respeitar limites

Inserir com colunas explícitas e diagnosticar violações de restrições.

Trilhas de aprendizado16 min

Vamos descobrir juntos

  1. 1

    INSERT INTO tabela (colunas) VALUES (valores) explicita correspondências. Não dependa da ordem de todas as colunas. Texto usa aspas simples; apóstrofos em literais manuais são duplicados. Aplicações devem usar parâmetros para entradas, como veremos adiante.

  2. 2

    O exemplo insere Echo com stock zero, que é válido. Repetir code R-01 viola UNIQUE. Um kit_id inexistente viola a chave estrangeira: o runner ativa foreign_keys em cada conexão, sem depender do padrão do SQLite.

  3. 3

    Confira a regra citada no erro e corrija a entrada. Não troque a operação por uma que apague conflitos sem entender suas consequências. O banco mantém regras; uma aplicação ainda precisa explicar erros de forma útil.

  4. 4

    Cada execução recomeça do esquema inicial. Para consultar uma inserção, coloque INSERT e SELECT no mesmo arquivo. Salvar lesson.sql guarda instruções, não as linhas criadas em memória.

Sua bancada de dados

Nosso modelo: kits.id ← loans.kit_id. Um material pode ter vários empréstimos; nomes podem repetir. Só usamos dados fictícios.

Preveja antes de abrir a referência. Ela mostra o resultado verificado do exemplo original, não executa seu texto. Para executar suas alterações, use o kit no computador.

-- Inserir e respeitar limites
INSERT INTO kits (id, code, label, category, stock) VALUES (5,'X-01','Echo','paper',0);
SELECT id, label, stock FROM kits WHERE id=5;
Comparar com o resultado de referência
[
  {
    "columns": [
      "id",
      "label",
      "stock"
    ],
    "rows": [
      [
        5,
        "Echo",
        0
      ]
    ]
  }
]

No terminal da pasta extraída, execute o comando. Use python3 no macOS/Ubuntu ou py se esse for seu launcher no Windows. Cada execução começa em memória; leia README.md para salvar arquivos e ensaiar recuperação.

python lab.py run lesson.sql
Meus arquivos e GitHub

O editor guarda seu rascunho .sql neste navegador. Baixe a edição e substitua lesson.sql no kit; no projeto final, availability.sql. O ZIP continua sendo o modelo original. Publicar no GitHub envia apenas o arquivo confirmado, sem executar SQL ou enviar o banco.

Links oficiais e próximo passo

✦
SUA MISSÃO

Inserir com colunas explícitas e diagnosticar violações de restrições.

Agora é a sua vez

Oficina de descobertas

Leia, preveja e confira

Inserir com colunas explícitas e diagnosticar violações de restrições.
Monte suas respostas e confira quando estiver pronto.
Uma pausa para entender

Por que code repetido é recusado?

Preciso de uma pista

O exemplo insere Echo com stock zero, que é válido. Repetir code R-01 viola UNIQUE. Um kit_id inexistente viola a chave estrangeira: o runner ativa foreign_keys em cada conexão, sem depender do padrão do SQLite.

Carregando sua jornada…

Leve com você

Insira um objeto válido e teste duas violações separadamente. Registre entrada, regra e resultado, inclusive erros esperados.

No seu ritmo

Meus arquivos e GitHub

Toda lição pode virar um registro seu: código, anotações ou um plano de prática. Guardar um arquivo no GitHub é opcional e não altera seu XP.

Manual do aluno

O editor e os downloads abrem quando esta lição estiver liberada para sua conta. Confira o acesso abaixo ou volte ao mapa da trilha.

Conferindo seu acesso à lição…

Rullstpetbot

A IA pode errar. Confira no material da lição.