Home / Function/ generateTriggerCreateSQL() — supabase Function Reference

generateTriggerCreateSQL() — supabase Function Reference

Architecture documentation for the generateTriggerCreateSQL() function in TriggerList.utils.ts from the supabase codebase.

Entity Profile

Dependency Diagram

graph TD
  e4649650_1257_de82_1d38_de2f1750bc35["generateTriggerCreateSQL()"]
  92b65447_3c5f_4ea9_7762_e33e6a649d7f["TriggerList()"]
  92b65447_3c5f_4ea9_7762_e33e6a649d7f -->|calls| e4649650_1257_de82_1d38_de2f1750bc35
  80f16831_d05a_3ddc_4b5f_e2ba883198f6["TriggersList()"]
  80f16831_d05a_3ddc_4b5f_e2ba883198f6 -->|calls| e4649650_1257_de82_1d38_de2f1750bc35
  style e4649650_1257_de82_1d38_de2f1750bc35 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

apps/studio/components/interfaces/Database/Triggers/TriggersList/TriggerList.utils.ts lines 17–39

export const generateTriggerCreateSQL = (trigger: PostgresTrigger) => {
  const events = trigger.events.join(' OR ')
  const args = trigger.function_args.length > 0 ? `(${trigger.function_args.join(', ')})` : '()'

  // Note: CREATE OR REPLACE is not supported for triggers
  // We need to drop the existing trigger first if we want to replace it
  let sql = `
DROP TRIGGER IF EXISTS "${trigger.name}" ON "${trigger.schema}"."${trigger.table}";

CREATE TRIGGER "${trigger.name}"
${trigger.activation} ${events}
ON "${trigger.schema}"."${trigger.table}"
FOR EACH ${trigger.orientation}
`

  if (trigger.condition) {
    sql += `WHEN (${trigger.condition})\n`
  }

  sql += `EXECUTE FUNCTION "${trigger.function_schema}"."${trigger.function_name}"${args};`

  return sql.trim()
}

Subdomains

Frequently Asked Questions

What does generateTriggerCreateSQL() do?
generateTriggerCreateSQL() is a function in the supabase codebase.
What calls generateTriggerCreateSQL()?
generateTriggerCreateSQL() is called by 2 function(s): TriggerList, TriggersList.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free