We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Triggers: How It Works in PostgreSQL Internals - Yugo Nagata - PGCon 2022
A tour of PostgreSQL triggers, exploring how they work from an internal perspective, covering row-level and statement-level triggers, constraints, trigger functions, and more.
- Triggers are a mechanism in PostgreSQL to execute a function automatically whenever a certain operation is performed on a table.
- There are two main types of triggers: row-level triggers and statement-level triggers.
- Row-level triggers are fired for each row that is updated or inserted, and can be used to implement business rules.
- Statement-level triggers are fired once per statement, and can be used to implement constraints.
- Constraints are rules that must be satisfied before a data modification can be executed.
- Deferred constraint triggers are not executed immediately, but are moved to a queue and executed at the end of the transaction.
- Immediate constraint triggers are executed immediately when the constraint is violated.
- Triggers can be used to implement common use cases, such as auditing and logging.
- Trigger functions can be used to modify the behavior of a trigger, and can raise errors if a constraint is violated.
-
Triggers can be created using the
CREATE TRIGGERstatement, and can be managed using thepg_triggersystem catalog. - Transition tables are used to store the affected rows, and can be used in after triggers for statement-level triggers.
-
The
CREATE CONSTRAINT TRIGGERstatement can be used to create a constraint trigger. - Constraint triggers can be used to implement constraints, and can raise errors if a constraint is violated.
-
The
pg_constraintsystem catalog is used to store information about constraints. -
The
CREATE TRIGGERstatement can be used to create a trigger, and can be used to implement business rules. - Triggers can be used to implement common use cases, such as auditing and logging.
-
The
pg_triggersystem catalog is used to store information about triggers. -
The
SET CONSTRAINTSstatement can be used to set the timing of constraint triggers. -
The
pg_triggersystem catalog is used to store information about triggers. - Triggers can be used to implement common use cases, such as auditing and logging.
-
The
pg_triggersystem catalog is used to store information about triggers. -
The
pg_constraintsystem catalog is used to store information about constraints. -
The
CREATE TRIGGERstatement can be used to create a trigger, and can be used to implement business rules. -
The
pg_triggersystem catalog is used to store information about triggers. -
The
pg_constraintsystem catalog is used to store information about constraints. - Triggers can be used to implement common use cases, such as auditing and logging.
-
The
pg_triggersystem catalog is used to store information about triggers. -
The
pg_constraintsystem catalog is used to store information about constraints. -
The
CREATE TRIGGERstatement can be used to create a trigger, and can be used to implement business rules. - Triggers can be used to implement common use cases, such as auditing and logging.
-
The
pg_triggersystem catalog is used to store information about triggers. -
The
pg_constraintsystem catalog is used to store information about constraints. -
The
CREATE TRIGGERstatement can be used to create a trigger, and can be used to implement business rules. - Triggers can be used to implement common use cases, such as auditing and logging.
-
The
pg_triggersystem catalog is used to store information about triggers. -
The
pg_constraintsystem catalog is used to store information about constraints. -
The
CREATE TRIGGERstatement can be used to create a trigger, and can be used to implement business rules. - Triggers can be used to implement common use cases, such as auditing and logging.
-
The
pg_triggersystem catalog is used to store information about triggers. -
The
pg_constraintsystem catalog is used to store information about constraints.