Derive Macro wb_sqlite::CreateTableLogSql

source ·
#[derive(CreateTableLogSql)]
{
    // Attributes available to this derive:
    #[sql]
}
Expand description

const CREATE_TABLE_LOG_SQL: &’static str = “CREATE …”

Create logging-table + trigger to log all table row modifications to the logging-table.

#[derive(CreateTableLogSql)]
struct FavoritePet {
   #[sql(constraint = "PRIMARY KEY")]
   id: i64,
   name: String,
}
assert_eq!(
   FavoritePet::CREATE_TABLE_LOG_SQL,
   concat!(
   "CREATE TABLE IF NOT EXISTS favorite_pet_log (id INTEGER NOT NULL, name TEXT NOT NULL) STRICT; ",
   "CREATE INDEX IF NOT EXISTS favorite_pet_log_id_idx ON favorite_pet_log(id); ",
   "CREATE TRIGGER IF NOT EXISTS favorite_pet_update UPDATE ON favorite_pet ",
   "BEGIN INSERT INTO favorite_pet_log (id,name) VALUES (OLD.id,OLD.name); END; ",
   "CREATE TRIGGER IF NOT EXISTS favorite_pet_delete DELETE ON favorite_pet ",
   "BEGIN INSERT INTO favorite_pet_log (id,name) VALUES (OLD.id,OLD.name); END;"
   )
);