SQL::Tr...nstraint(3)

πŸ’– NAME πŸ’–

Okay bestie, you're on the SQL::Translator::Schema::Constraint(3) page β€” part of User Contributed Perl Documentation β€” and it's literally all about SQL::Translator::Schema::Constraint, aka the constraint object. The official name vibe is SQL::Translator::Schema::Constraint β€” SQL::Translator constraint object. Slay. πŸ’…

✨ SYNOPSIS ✨

Here's the starter pack, no cap:

use SQL::Translator::Schema::Constraint;
my $constraint = SQL::Translator::Schema::Constraint->new(
    name   => 'foo',
    fields => [ id ],
    type   => PRIMARY_KEY,
);

🌸 DESCRIPTION 🌸

SQL::Translator::Schema::Constraint is the constraint object. That's the tea β˜• β€” it's giving "constraint object, but make it schema-core." πŸ¦‹

πŸŽ€ METHODS πŸŽ€

πŸ¦‹ new πŸ¦‹

Object constructor β€” the main-character method that spins up a new constraint.

my $schema           =  SQL::Translator::Schema::Constraint->new(
    table            => $table,        # table to which it belongs
    type             => 'foreign_key', # type of table constraint
    name             => 'fk_phone_id', # name of the constraint
    fields           => 'phone_id',    # field in the referring table
    reference_fields => 'phone_id',    # referenced field
    reference_table  => 'phone',       # referenced table
    match_type       => 'full',        # how to match
    on_delete        => 'cascade',     # what to do on deletes
    on_update        => '',            # what to do on updates
);

πŸ¦‹ deferrable πŸ¦‹

Get or set whether the constraint is deferrable. If it's not defined, then it returns "1." β€” yes, period and all, bestie. The argument is evaluated by Perl for True or False, so these are equivalent:

$deferrable = $field->deferrable(0);
$deferrable = $field->deferrable('');
$deferrable = $field->deferrable('0');

πŸ¦‹ expression πŸ¦‹

Gets and sets the expression used in a CHECK constraint.

my $expression = $constraint->expression('...');

πŸ¦‹ is_valid πŸ¦‹

Determine whether the constraint is valid or not.

my $ok = $constraint->is_valid;

πŸ¦‹ fields πŸ¦‹

Gets and sets the fields the constraint is on. Accepts a string, a list, or an arrayref; returns an array or an array reference. It will unique the field names and keep them in order by the first occurrence of a field name.

The fields are returned as Field objects if they exist, or as plain names if not. (If you just want the names and want to avoid the Field overload magic, use field_names.)

Returns undef or an empty list if the constraint has no fields set.

$constraint->fields('id');
$constraint->fields('id', 'name');
$constraint->fields( 'id, name' );
$constraint->fields( [ 'id', 'name' ] );
$constraint->fields( qw[ id name ] );

my @fields = $constraint->fields;

πŸ¦‹ field_names πŸ¦‹

Read-only method to return a list or array ref of the field names. Returns undef or an empty list if the constraint has no fields set. Useful if you want to avoid the overload magic of the Field objects returned by the fields method.

my @names = $constraint->field_names;

πŸ¦‹ match_type πŸ¦‹

Get or set the constraint's match_type. Only valid values are "full" "partial" and "simple".

my $match_type = $constraint->match_type('FULL');

πŸ¦‹ name πŸ¦‹

Get or set the constraint's name.

my $name = $constraint->name('foo');

πŸ¦‹ options πŸ¦‹

Gets or adds to the constraint's options (e.g., "INITIALLY IMMEDIATE"). Returns an array or array reference.

$constraint->options('NORELY');
my @options = $constraint->options;

πŸ¦‹ on_delete πŸ¦‹

Get or set the constraint's "on delete" action.

my $action = $constraint->on_delete('cascade');

πŸ¦‹ on_update πŸ¦‹

Get or set the constraint's "on update" action.

my $action = $constraint->on_update('no action');

πŸ¦‹ reference_fields πŸ¦‹

Gets and sets the fields in the referred table. Accepts a string, a list, or an arrayref; returns an array or an array reference.

$constraint->reference_fields('id');
$constraint->reference_fields('id', 'name');
$constraint->reference_fields( 'id, name' );
$constraint->reference_fields( [ 'id', 'name' ] );
$constraint->reference_fields( qw[ id name ] );

my @reference_fields = $constraint->reference_fields;

πŸ¦‹ reference_table πŸ¦‹

Get or set the table referred to by the constraint.

my $reference_table = $constraint->reference_table('foo');

πŸ¦‹ table πŸ¦‹

Get or set the constraint's table object.

my $table = $field->table;

πŸ¦‹ type πŸ¦‹

Get or set the constraint's type.

my $type = $constraint->type( PRIMARY_KEY );

πŸ¦‹ equals πŸ¦‹

Determines if this constraint is the same as another.

my $isIdentical = $constraint1->equals( $constraint2 );

πŸ‘‘ <gold>AUTHOR</gold> πŸ‘‘

Ken Youens-Clark <kclark@cpan.org>.


okay that's the whole page, bestie πŸ’– β€” source/version vibes: perl v5.42.0; date: 2024-12-12; footer tag: SQL::Tr...nstraint(3). byeee 🫢✨

πŸ“¦ where this page comes from