NAME
SQL::Translator::Schema::Table - SQL::Translator table object
SYNOPSIS
use SQL::Translator::Schema::Table;
my $table = SQL::Translator::Schema::Table->new( name => 'foo' );
DESCSIPTION
SQL::Translator::Schema::Table
is the table object.
METHODS
new
Object constructor.
my $table = SQL::Translator::Schema::Table->new(
schema => $schema,
name => 'foo',
);
add_constraint
Add a constraint to the table. Returns the newly created SQL::Translator::Schema::Constraint
object.
my $c1 = $table->add_constraint(
name => 'pk',
type => PRIMARY_KEY,
fields => [ 'foo_id' ],
);
my $c2 = SQL::Translator::Schema::Constraint->new( name => 'uniq' );
$c2 = $table->add_constraint( $constraint );
add_index
Add an index to the table. Returns the newly created SQL::Translator::Schema::Index
object.
my $i1 = $table->add_index(
name => 'name',
fields => [ 'name' ],
type => 'normal',
);
my $i2 = SQL::Translator::Schema::Index->new( name => 'id' );
$i2 = $table->add_index( $index );
add_field
Add an field to the table. Returns the newly created SQL::Translator::Schema::Field
object. The "name" parameter is required. If you try to create a field with the same name as an existing field, you will get an error and the field will not be created.
my $f1 = $table->add_field(
name => 'foo_id',
data_type => 'integer',
size => 11,
);
my $f2 = SQL::Translator::Schema::Field->new(
name => 'name',
table => $table,
);
$f2 = $table->add_field( $field2 ) or die $table->error;
comments
Get or set the comments on a table. May be called several times to set and it will accumulate the comments. Called in an array context, returns each comment individually; called in a scalar context, returns all the comments joined on newlines.
$table->comments('foo');
$table->comments('bar');
print join( ', ', $table->comments ); # prints "foo, bar"
get_constraints
Returns all the constraint objects as an array or array reference.
my @constraints = $table->get_constraints;
get_indices
Returns all the index objects as an array or array reference.
my @indices = $table->get_indices;
get_field
Returns a field by the name provided.
my $field = $table->get_field('foo');
get_fields
Returns all the field objects as an array or array reference.
my @fields = $table->get_fields;
is_valid
Determine whether the view is valid or not.
my $ok = $view->is_valid;
is_data
is_data
can_link
Determine whether the table can link two arg tables via many-to-many.
my $ok = $table->can_link($table1,$table2);
name
Get or set the table's name.
If provided an argument, checks the schema object for a table of that name and disallows the change if one exists.
my $table_name = $table->name('foo');
schema
Get or set the table's schema object.
my $schema = $table->schema;
primary_key
Gets or sets the table's primary key(s). Takes one or more field names (as a string, list or array[ref]) as an argument. If the field names are present, it will create a new PK if none exists, or it will add to the fields of an existing PK (and will unique the field names). Returns the SQL::Translator::Schema::Constraint
object representing the primary key.
These are eqivalent:
$table->primary_key('id');
$table->primary_key(['name']);
$table->primary_key('id','name']);
$table->primary_key(['id','name']);
$table->primary_key('id,name');
$table->primary_key(qw[ id name ]);
my $pk = $table->primary_key;
options
Get or set the table's options (e.g., table types for MySQL). Returns an array or array reference.
my @options = $table->options;
order
Get or set the table's order.
my $order = $table->order(3);
AUTHORS
Ken Y. Clark <kclark@cpan.org>, Allen Day <allenday@ucla.edu>.