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

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
  );

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

METHODS

  new
Object constructor.

  my $schema = 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 actions of the trigger.

  $trigger->actions(
      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);

  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>.