Struct sql_parse::CreateTrigger
source · [−]pub struct CreateTrigger<'a> {
pub create_span: Span,
pub create_options: Vec<CreateOption<'a>>,
pub trigger_span: Span,
pub if_not_exists: Option<Span>,
pub name: Identifier<'a>,
pub trigger_time: TriggerTime,
pub trigger_event: TriggerEvent,
pub on_span: Span,
pub table: Identifier<'a>,
pub for_each_row_span: Span,
pub statement: Box<Statement<'a>>,
}
Expand description
Represent a create trigger statement
let sql = "DROP TRIGGER IF EXISTS `my_trigger`;
DELIMITER $$
CREATE TRIGGER `my_trigger` AFTER DELETE ON `things` FOR EACH ROW BEGIN
IF OLD.`value` IS NOT NULL THEN
UPDATE `t2` AS `j`
SET
`j`.`total_items` = `total_items` - 1
WHERE `j`.`id`=OLD.`value` AND NOT `j`.`frozen`;
END IF;
INSERT INTO `updated_things` (`thing`) VALUES (OLD.`id`);
END
$$
DELIMITER ;";
let mut stmts = parse_statements(sql, &mut issues, &options);
let create: CreateTrigger = match stmts.pop() {
Some(Statement::CreateTrigger(c)) => c,
_ => panic!("We should get an create trigger statement")
};
assert!(create.name.as_str() == "my_trigger");
println!("{:#?}", create.statement)
Fields
create_span: Span
Span of “CREATE”
create_options: Vec<CreateOption<'a>>
Options after “CREATE”
trigger_span: Span
Span of “TRIGGER”
if_not_exists: Option<Span>
Span of “IF NOT EXISTS” if specified
name: Identifier<'a>
Name of the created trigger
trigger_time: TriggerTime
Should the trigger be fired before or after the event
trigger_event: TriggerEvent
What event should the trigger be fired on
on_span: Span
Span of “ON”
table: Identifier<'a>
Name of table to create the trigger on
for_each_row_span: Span
Span of “FOR EACH ROW”
statement: Box<Statement<'a>>
Statement to execute
Trait Implementations
sourceimpl<'a> Clone for CreateTrigger<'a>
impl<'a> Clone for CreateTrigger<'a>
sourcefn clone(&self) -> CreateTrigger<'a>
fn clone(&self) -> CreateTrigger<'a>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl<'a> Debug for CreateTrigger<'a>
impl<'a> Debug for CreateTrigger<'a>
sourceimpl<'a> Spanned for CreateTrigger<'a>
impl<'a> Spanned for CreateTrigger<'a>
Auto Trait Implementations
impl<'a> RefUnwindSafe for CreateTrigger<'a>
impl<'a> Send for CreateTrigger<'a>
impl<'a> Sync for CreateTrigger<'a>
impl<'a> Unpin for CreateTrigger<'a>
impl<'a> UnwindSafe for CreateTrigger<'a>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
🔬 This is a nightly-only experimental API. (
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more