datasources-sqlite 0.1.41

SQLite datasource provider
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::SqliteDriver;
use datasources::CreateTriggerStatement;

pub struct SqliteCreateTriggerStatementRenderer;

impl SqliteCreateTriggerStatementRenderer {
    pub fn render(&self, statement: &CreateTriggerStatement) -> String {
        let table = SqliteDriver::quote(statement.table());
        let name = SqliteDriver::quote(statement.name());
        let updated = SqliteDriver::quote(statement.updated_column());
        let key = SqliteDriver::quote(statement.key_column());
        format!(
            "CREATE TRIGGER {name}\nAFTER UPDATE ON {table}\nFOR EACH ROW\nWHEN NEW.{updated} IS OLD.{updated}\nBEGIN\n  UPDATE {table} SET {updated} = {} WHERE {key} = OLD.{key};\nEND",
            SqliteDriver::utc_now(),
        )
    }
}