Module trigger

Module trigger 

Source
Expand description

Database trigger definitions and management.

This module provides types for defining, creating, and managing database triggers across different database backends.

§Supported Features

FeaturePostgreSQLMySQLSQLiteMSSQLMongoDB
Row-Level Triggers✅*
Statement-Level Triggers
INSTEAD OF Triggers
BEFORE Triggers
AFTER Triggers✅*

*MongoDB uses Change Streams for real-time notifications

§Example Usage

use prax_query::trigger::{Trigger, TriggerTiming, TriggerEvent, TriggerLevel};

// Create an audit trigger
let trigger = Trigger::builder("audit_user_changes")
    .on_table("users")
    .timing(TriggerTiming::After)
    .events([TriggerEvent::Update, TriggerEvent::Delete])
    .level(TriggerLevel::Row)
    .execute_function("audit_log_changes")
    .build();

// Generate SQL
let sql = trigger.to_postgres_sql();

Modules§

mongodb
MongoDB Change Stream support.
patterns
Pre-built trigger patterns for common use cases.

Structs§

Trigger
A database trigger definition.
TriggerBuilder
Builder for creating triggers.
TriggerCondition
A WHEN condition for conditional triggers.
UpdateOf
A column update specification for UPDATE triggers.

Enums§

TriggerAction
The action to execute when the trigger fires.
TriggerEvent
The DML event that fires the trigger.
TriggerLevel
Whether the trigger fires once per row or once per statement.
TriggerTiming
When the trigger fires relative to the triggering event.