Expand description
Database trigger definitions and management.
This module provides types for defining, creating, and managing database triggers across different database backends.
§Supported Features
| Feature | PostgreSQL | MySQL | SQLite | MSSQL | MongoDB |
|---|---|---|---|---|---|
| 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§
Structs§
- Trigger
- A database trigger definition.
- Trigger
Builder - Builder for creating triggers.
- Trigger
Condition - A WHEN condition for conditional triggers.
- Update
Of - A column update specification for UPDATE triggers.
Enums§
- Trigger
Action - The action to execute when the trigger fires.
- Trigger
Event - The DML event that fires the trigger.
- Trigger
Level - Whether the trigger fires once per row or once per statement.
- Trigger
Timing - When the trigger fires relative to the triggering event.