Un trigger que lleva un registro en SQL
Un trigger es una sentencia que la base de datos corre por ti en cada escritura.
CREATE TABLE order_audit (
id INTEGER PRIMARY KEY,
order_id INTEGER NOT NULL,
action TEXT NOT NULL,
logged_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TRIGGER orders_insert_audit
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
INSERT INTO order_audit (order_id, action)
VALUES (NEW.id, 'created');
END;
Cómo funciona
AFTER INSERTse dispara una vez por fila, conNEWligado a esa fila.FOR EACH ROWes la única granularidad que ofrece SQLite.- Un trigger es una escritura oculta, así que mantenlo pequeño y aburrido.
Palabras clave y builtins usados aquí
AFTERBEGINCREATECURRENT_TIMESTAMPDEFAULTEACHENDFORINSERTINTEGERINTOKEYNEWNOTNULLONPRIMARYROWTABLETEXTTRIGGERVALUES
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 306
- Tokens
- 57
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 38 segundos.
Paso 1 de 2 en Triggers; paso 8 de 16 en Esquema y restricciones.