---
name: "SQL::Translator::Schema::Trigger"
section: "3pm"
platform: "linux"
package: "libsql-translator-perl"
version: "1.66-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SQL::Translator::Schema::Trigger"
---

# SQL::Translator::Schema::Trigger(3pm)

SQL::Translator trigger object

## NAME

SQL::Translator::Schema::Trigger - SQL::Translator trigger object

## SYNOPSIS

```
  use SQL::Translator::Schema::Trigger;
  my $trigger = SQL::Translator::Schema::Trigger->new(
    name                => 'foo',
    perform_action_when => 'before', # or after
    database_events     => [qw/update insert/], # also update, update_on, delete
    fields              => [],       # if event is "update"
    on_table            => 'foo',    # table name
    action              => '...',    # text of trigger
    schema              => $schema,  # Schema object
    scope               => 'row',    # or statement
  );
```

## DESCRIPTION

`"SQL::Translator::Schema::Trigger"` is the trigger object.

## METHODS

### new

Object constructor.

```
  my $trigger = SQL::Translator::Schema::Trigger->new;
```

### perform\_action\_when

Gets or sets whether the event happens "before" or "after" the `"database_event"`.

```
  $trigger->perform_action_when('after');
```

### database\_event

Obsolete please use database\_events!

### database\_events

Gets or sets the events that triggers the trigger.

```
  my $ok = $trigger->database_events('insert');
```

### fields

Gets and set which fields to monitor for `"database_event"`.

```
  $view->fields('id');
  $view->fields('id', 'name');
  $view->fields( 'id, name' );
  $view->fields( [ 'id', 'name' ] );
  $view->fields( qw[ id name ] );
  my @fields = $view->fields;
```

### table

Gets or set the table on which the trigger works, as a SQL::Translator::Schema::Table object.\
   `$trigger`-\>table($triggered\_table);

### on\_table

Gets or set the table name on which the trigger works, as a string.\
   `$trigger`-\>on\_table('foo');

### action

Gets or set the action of the trigger.

```
  $trigger->action(
      q[
        BEGIN
          select ...;
          update ...;
        END
      ]
  );
```

### is\_valid

Determine whether the trigger is valid or not.

```
  my $ok = $trigger->is_valid;
```

### name

Get or set the trigger's name.

```
  my $name = $trigger->name('foo');
```

### order

Get or set the trigger's order.

```
  my $order = $trigger->order(3);
```

### scope

Get or set the trigger's scope (row or statement).

```
    my $scope = $trigger->scope('statement');
```

### schema

Get or set the trigger's schema object.

```
  $trigger->schema( $schema );
  my $schema = $trigger->schema;
```

### compare\_arrays

Compare two arrays.

### equals

Determines if this trigger is the same as another

```
  my $is_identical = $trigger1->equals( $trigger2 );
```

## AUTHORS

Anonymous, Ken Youens-Clark \<kclark@cpan.org\>.
