createTrigger
Note: This is a Liquibase Pro Change Type, so you need a Liquibase Pro License Key to use it.
The createTrigger
Change Type creates the trigger in a database.
Uses
You can typically use the createTrigger
Change Type when you want to add a trigger to the table which will be automatically activated when a specific event occurs in your database. It can include catalog, schema, and table name attributes listed in this documentation.
Running the createTrigger
Change Type
To create a trigger in your database, follow these steps:
- Add the
createTrigger
Change Type to your changeset with the needed attributes as it is shown in the examples. - Deploy your changeset by running the
update
command:
liquibase update
Now, you should see that the trigger you've specified is added.
Available attributes
Name | Description | Required for | Supports | Since |
---|---|---|---|---|
catalogName
|
Name of the catalog |
asany, db2, db2z, derby, firebird, h2, hsqldb, informix, ingres, mariadb, mysql, oracle, postgresql, sqlite, sybase | ||
dbms
|
Specifies which database type |
all | 3.1 | |
disabled
|
Specifies whether the trigger is disabled. | all | ||
encoding
|
Encoding used in the file defined in the |
all | ||
path
|
File containing the procedure text. Either this attribute or a nested procedure text is required. |
all | all | |
procedureText
|
The SQL creating the procedure. You need to define either this attribute or the |
all | all | |
relativeToChangelogFile
|
Specifies whether the file path is relative to the changelog file rather than looked up in the search path. Default: |
all | ||
replaceIfExists
|
Boolean. If the stored procedure defined by |
mariadb, mssql, mysql | ||
schemaName
|
Name of the schema |
all | ||
scope
|
Name of the module for a trigger |
all | ||
tableName
|
Name of the table |
all | ||
triggerBody
|
The trigger SQL |
all | all | |
triggerName
|
Name of the trigger |
all | all |

...
<changeSet author="liquibase-docs" id="createTrigger-example">
<pro:createTrigger catalogName="cat"
comments="A String"
dbms="h2, !oracle, mysql"
disabled="true"
encoding="UTF-8"
path="com/example/my-logic.sql"
relativeToChangelogFile="true"
replaceIfExists="false"
schemaName="public"
scope="A String"
tableName="person"
triggerName="A String">A String</pro:createTrigger>
</changeSet>
...

...
- changeSet:
id: createTrigger-example
author: liquibase-docs
changes:
- createTrigger:
catalogName: cat
comments: A String
dbms: h2, !oracle, mysql
disabled: true
encoding: UTF-8
path: com/example/my-logic.sql
relativeToChangelogFile: true
replaceIfExists: false
schemaName: public
scope: A String
tableName: person
triggerBody: A String
triggerName: A String
...

...
{
"changeSet":{
"id":"createTrigger-example",
"author":"liquibase-docs",
"changes":[
{
"createTrigger":{
"catalogName":"cat",
"comments":"A String",
"dbms":"h2, !oracle, mysql",
"disabled":true,
"encoding":"UTF-8",
"path":"com/example/my-logic.sql",
"relativeToChangelogFile":true,
"replaceIfExists":false,
"schemaName":"public",
"scope":"A String",
"tableName":"person",
"triggerBody":"A String",
"triggerName":"A String"
}
}
]
}
}
...
Database support
Database | Notes | Auto Rollback |
---|---|---|
DB2/LUW | Supported | No |
DB2/z | Supported | No |
Derby | Supported | No |
Firebird | Supported | No |
H2 | Supported | No |
HyperSQL | Supported | No |
INGRES | Supported | No |
Informix | Supported | No |
MariaDB | Supported | No |
MySQL | Supported | No |
Oracle | Supported | No |
PostgreSQL | Supported | No |
Snowflake | Not Supported | No |
SQL Server | Supported | No |
SQLite | Supported | No |
Sybase | Supported | No |
Sybase Anywhere | Supported | No |