Take me over?
NAME
Alzabo::Create::Column - Column objects for use in schema creation
SYNOPSIS
use Alzabo::Create::Column;
DESCRIPTION
This object represents a column. It holds data specific to a column. Additional data is held in a Alzabo::Create::ColumnDefinition
object, which is used to allow two columns to share a type (which is good when two columns in different tables are related as it means that if the type of one is changed, the other is also.)
INHERITS FROM
Alzabo::Column
METHODS
new
The constructor accepts the following parameters:
table =>
Alzabo::Create::Table
objectname => $name
nullable => 0 or 1 (optional)
Defaults to false.
sequenced => 0 or 1 (optional)
Defaults to false.
default => $default (optional)
default_is_raw => $boolean (optional)
If "default_is_raw" is true, then it will not be quoted when passed to the DBMS in SQL statements. This should be used to allow a default which is a function, like
NOW()
.attributes => \@attributes (optional)
length => $length (optional)
precision => $precision (optional)
One of either ...
type => $type
... or ...
definition =>
Alzabo::Create::ColumnDefinition
objectcomment => $comment
An optional comment.
It returns a new Alzabo::Create::Column
object.
Throws: Alzabo::Exception::Params
alter
This method allows you to change a column's type, length, and precision as a single operation. It should be instead of calling set_type()
followed by set_length()
.
It takes the following parameters:
type => $type
length => $length (optional)
precision => $precision (optional)
Throws: Alzabo::Exception::Params
, Alzabo::Exception::RDBMSRules
set_type ($type)
Sets the column's type.
Throws: Alzabo::Exception::Params
, Alzabo::Exception::RDBMSRules
set_table (Alzabo::Create::Table
object)
Sets the Alzabo::Create::Table
object in which this column is located.
Throws: Alzabo::Exception::Params
set_name ($name)
Sets the column's name (a string).
Throws: Alzabo::Exception::Params
, Alzabo::Exception::RDBMSRules
set_nullable (0 or 1)
Sets the nullability of the column (this determines whether nulls are allowed in the column or not). Must be 0 or 1.
Throws: Alzabo::Exception::Params
set_attributes (@attributes)
Sets the column's attributes. These are strings describing the column (for example, valid attributes in MySQL are "PRIMARY KEY" or "AUTO_INCREMENT").
Throws: Alzabo::Exception::RDBMSRules
add_attribute ($attribute)
Add an attribute to the column's list of attributes.
Throws: Alzabo::Exception::RDBMSRules
delete_attribute ($attribute)
Delete the given attribute from the column's list of attributes.
Throws: Throws: Alzabo::Exception::Params
, Alzabo::Exception::RDBMSRules
set_default ($default)
Sets the column's default value.
set_length
This method takes the following parameters:
length => $length
precision => $precision (optional)
This method sets the column's length and precision. The precision parameter is optional (though some column types may require it if the length is set).
Throws: Alzabo::Exception::RDBMSRules
set_sequenced (0 or 1)
Sets the value of the column's sequenced attribute.
Throws: Alzabo::Exception::Params
, Alzabo::Exception::RDBMSRules
set_definition (Alzabo::Create::ColumnDefinition
object)
Sets the Alzabo::Create::ColumnDefinition
object which holds this column's type information.
former_name
If the column's name has been changed since the last time the schema was instantiated, this method returns the column's previous name.
set_comment ($comment)
Set the comment for the column object.