45 lines
883 B
TypeScript
45 lines
883 B
TypeScript
import { DSQL_DatabaseSchemaType, DSQL_TableSchemaType } from "../../../types";
|
|
|
|
const TriggerTypes = [
|
|
{
|
|
name: "after_insert",
|
|
value: "INSERT",
|
|
},
|
|
{
|
|
name: "after_update",
|
|
value: "UPDATE",
|
|
},
|
|
{
|
|
name: "after_delete",
|
|
value: "DELETE",
|
|
},
|
|
] as const;
|
|
|
|
export type TriggerSQLGenParams = {
|
|
type: (typeof TriggerTypes)[number];
|
|
srcDbSchema: DSQL_DatabaseSchemaType;
|
|
srcTableSchema: DSQL_TableSchemaType;
|
|
content: string;
|
|
proceedureName: string;
|
|
};
|
|
|
|
export default function triggerSQLGen({
|
|
type,
|
|
srcDbSchema,
|
|
srcTableSchema,
|
|
content,
|
|
proceedureName,
|
|
}: TriggerSQLGenParams) {
|
|
let sql = `DELIMITER //\n`;
|
|
|
|
sql += `CREATE PROCEDURE ${proceedureName}`;
|
|
sql += `\nBEGIN`;
|
|
|
|
sql += ` ${content}`;
|
|
|
|
sql += `\nEND //`;
|
|
sql += `\nDELIMITER\n`;
|
|
|
|
return sql;
|
|
}
|