SQL::Translator::Schema::Constraint - SQL::Translator constraint object
use SQL::Translator::Schema::Constraint; my $constraint = SQL::Translator::Schema::Constraint->new( name => 'foo', fields => [ id ], type => PRIMARY_KEY, );
SQL::Translator::Schema::Constraint is the constraint object.
SQL::Translator::Schema::Constraint
Object constructor.
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_do => 'cascade', # what to do on deletes on_update_do => '', # what to do on updates );
Get or set the whether the constraint is deferrable. If not defined, then returns "1." The argument is evaluated by Perl for True or False, so the following are eqivalent:
$deferrable = $field->deferrable(0); $deferrable = $field->deferrable(''); $deferrable = $field->deferrable('0');
Gets and set the expression used in a CHECK constraint.
my $expression = $constraint->expression('...');
Determine whether the constraint is valid or not.
my $ok = $constraint->is_valid;
Gets and set the fields the constraint is on. Accepts a string, list or arrayref; returns an array or array reference. Will unique the field names and keep them in order by the first occurrence of a field name.
$constraint->fields('id'); $constraint->fields('id', 'name'); $constraint->fields( 'id, name' ); $constraint->fields( [ 'id', 'name' ] ); $constraint->fields( qw[ id name ] ); my @fields = $constraint->fields;
Get or set the constraint's match_type. Only valid values are "full" or "partial."
my $match_type = $constraint->match_type('FULL');
Get or set the constraint's name.
my $name = $constraint->name('foo');
Gets or adds to the constraints's options (e.g., "INITIALLY IMMEDIATE"). Returns an array or array reference.
$constraint->options('NORELY'); my @options = $constraint->options;
Get or set the constraint's "on delete" action.
my $action = $constraint->on_delete('cascade');
Get or set the constraint's "on update" action.
my $action = $constraint->on_update('no action');
Gets and set the fields in the referred table. Accepts a string, list or arrayref; returns an array or 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;
Get or set the table referred to by the constraint.
my $reference_table = $constraint->reference_table('foo');
Get or set the field's table object.
my $table = $field->table;
Get or set the constraint's type.
my $type = $constraint->type( PRIMARY_KEY );
Ken Y. Clark <kclark@cpan.org>
To install SQL::Translator, copy and paste the appropriate command in to your terminal.
cpanm
cpanm SQL::Translator
CPAN shell
perl -MCPAN -e shell install SQL::Translator
For more information on module installation, please visit the detailed CPAN module installation guide.