pub struct CreateTriggerStatement { /* private fields */ }Expand description
CREATE TRIGGER statement builder
This struct provides a fluent API for constructing CREATE TRIGGER queries.
§Backend Support
- PostgreSQL: Full support (BEFORE/AFTER/INSTEAD OF, FOR EACH ROW/STATEMENT, WHEN clause)
- MySQL: Basic support (BEFORE/AFTER, FOR EACH ROW only, FOLLOWS/PRECEDES)
- SQLite: Basic support (BEFORE/AFTER/INSTEAD OF, FOR EACH ROW, WHEN clause)
§Examples
ⓘ
use reinhardt_query::prelude::*;
use reinhardt_query::types::{TriggerEvent, TriggerTiming, TriggerScope, TriggerBody};
// PostgreSQL: Call a function when a row is inserted
let query = Query::create_trigger()
.name("audit_insert")
.timing(TriggerTiming::After)
.event(TriggerEvent::Insert)
.on_table("users")
.for_each(TriggerScope::Row)
.execute_function("audit_log_insert");
// MySQL: Multiple statements on update
let query = Query::create_trigger()
.name("update_timestamp")
.timing(TriggerTiming::Before)
.event(TriggerEvent::Update { columns: None })
.on_table("users")
.for_each(TriggerScope::Row)
.body(TriggerBody::multiple(vec![
"SET NEW.updated_at = NOW()",
]));Implementations§
Source§impl CreateTriggerStatement
impl CreateTriggerStatement
Sourcepub fn take(&mut self) -> Self
pub fn take(&mut self) -> Self
Take the ownership of data in the current CreateTriggerStatement
Sourcepub fn timing(&mut self, timing: TriggerTiming) -> &mut Self
pub fn timing(&mut self, timing: TriggerTiming) -> &mut Self
Sourcepub fn event(&mut self, event: TriggerEvent) -> &mut Self
pub fn event(&mut self, event: TriggerEvent) -> &mut Self
Add a trigger event (INSERT, UPDATE, DELETE)
Can be called multiple times to add multiple events (PostgreSQL only).
§Examples
ⓘ
use reinhardt_query::prelude::*;
use reinhardt_query::types::TriggerEvent;
let query = Query::create_trigger()
.event(TriggerEvent::Insert)
.event(TriggerEvent::Update { columns: None });Sourcepub fn on_table<T>(&mut self, table: T) -> &mut Selfwhere
T: IntoTableRef,
pub fn on_table<T>(&mut self, table: T) -> &mut Selfwhere
T: IntoTableRef,
Sourcepub fn for_each(&mut self, scope: TriggerScope) -> &mut Self
pub fn for_each(&mut self, scope: TriggerScope) -> &mut Self
Sourcepub fn when_condition(&mut self, condition: SimpleExpr) -> &mut Self
pub fn when_condition(&mut self, condition: SimpleExpr) -> &mut Self
Sourcepub fn body(&mut self, body: TriggerBody) -> &mut Self
pub fn body(&mut self, body: TriggerBody) -> &mut Self
Sourcepub fn execute_function<S: Into<String>>(
&mut self,
function_name: S,
) -> &mut Self
pub fn execute_function<S: Into<String>>( &mut self, function_name: S, ) -> &mut Self
Sourcepub fn order(&mut self, order: TriggerOrder) -> &mut Self
pub fn order(&mut self, order: TriggerOrder) -> &mut Self
Trait Implementations§
Source§impl Clone for CreateTriggerStatement
impl Clone for CreateTriggerStatement
Source§fn clone(&self) -> CreateTriggerStatement
fn clone(&self) -> CreateTriggerStatement
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CreateTriggerStatement
impl Debug for CreateTriggerStatement
Source§impl Default for CreateTriggerStatement
impl Default for CreateTriggerStatement
Source§impl QueryStatementBuilder for CreateTriggerStatement
impl QueryStatementBuilder for CreateTriggerStatement
Source§fn build_any(&self, query_builder: &dyn QueryBuilderTrait) -> (String, Values)
fn build_any(&self, query_builder: &dyn QueryBuilderTrait) -> (String, Values)
Build SQL statement for a database backend and collect query parameters Read more
impl QueryStatementWriter for CreateTriggerStatement
Auto Trait Implementations§
impl Freeze for CreateTriggerStatement
impl !RefUnwindSafe for CreateTriggerStatement
impl !Send for CreateTriggerStatement
impl !Sync for CreateTriggerStatement
impl Unpin for CreateTriggerStatement
impl UnsafeUnpin for CreateTriggerStatement
impl !UnwindSafe for CreateTriggerStatement
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more