trigger no SQLite

O SQLite não suporta stored procedure diretamente, mas suporta triggers o que é um recurso muito útil para automatizar algumas ações.

Por exemplo, atualizar automaticamente o campo updated_at.

CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    nome TEXT,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE TRIGGER update_timestamp
BEFORE UPDATE ON users
FOR EACH ROW
BEGIN
    UPDATE users SET updated_at = CURRENT_TIMESTAMP WHERE id = OLD.id;
END;

Agora, quando você atualizar um registro na tabela users, o campo updated_at será atualizado automaticamente para o timestamp atual.

INSERT INTO users (nome) VALUES ('Teste 1');

UPDATE users SET nome = 'Teste 2' WHERE id = 1;

SELECT * FROM users;

Com isso, é possível manter a consistência dos dados sem precisar alterar manualmente o campo updated_at. As triggers do SQLite são leves e fáceis de implementar, tornando o código da aplicação mais simples.

Cesar Gimenes

Última modificação
Tags: