feat: sqlite triggers

This commit is contained in:
Nybkox
2025-01-02 11:13:39 +01:00
parent 30bbdb0f1d
commit f0221f6e43
3 changed files with 29 additions and 0 deletions

View File

@@ -149,9 +149,12 @@ class Analyser extends DatabaseAnalyser {
}));
}
const triggers = await this.driver.query(this.dbhan, sql.triggers);
return {
tables: tableList,
views: viewList,
triggers: triggers.rows,
};
}
}

View File

@@ -1,8 +1,11 @@
const objects = require('./objects.js');
const objectsConditioned = require('./objectsConditioned.js');
const indexcols = require('./indexcols.js');
const triggers = require('./triggers.js');
module.exports = {
objects,
objectsConditioned,
indexcols,
triggers,
};

View File

@@ -0,0 +1,23 @@
module.exports = `
SELECT
rowid AS objectId,
name AS pureName,
CASE
WHEN sql LIKE '% AFTER %' THEN 'AFTER'
WHEN sql LIKE '% BEFORE %' THEN 'BEFORE'
WHEN sql LIKE '% INSTEAD OF %' THEN 'INSTEAD OF'
ELSE 'UNKNOWN'
END AS triggerTiming,
CASE
WHEN sql LIKE '% INSERT %' THEN 'INSERT'
WHEN sql LIKE '% UPDATE %' THEN 'UPDATE'
WHEN sql LIKE '% DELETE %' THEN 'DELETE'
ELSE NULL
END AS eventType,
tbl_name AS tableName,
sql AS createSql
FROM
sqlite_master
WHERE
type = 'trigger';
`;