Interface TableSchemaInterface
An interface used by database TableSchema objects.
Constants summary
-
string
TYPE_BIGINTEGER ¶'biginteger'
-
string
TYPE_BINARY ¶'binary'
-
string
TYPE_BINARY_UUID ¶'binaryuuid'
-
string
TYPE_BOOLEAN ¶'boolean'
-
string
TYPE_CHAR ¶'char'
-
string
TYPE_DATE ¶'date'
-
string
TYPE_DATETIME ¶'datetime'
-
string
TYPE_DATETIME_FRACTIONAL ¶'datetimefractional'
-
string
TYPE_DECIMAL ¶'decimal'
-
string
TYPE_FLOAT ¶'float'
-
string
TYPE_INTEGER ¶'integer'
-
string
TYPE_JSON ¶'json'
-
string
TYPE_SMALLINTEGER ¶'smallinteger'
-
string
TYPE_STRING ¶'string'
-
string
TYPE_TEXT ¶'text'
-
string
TYPE_TIME ¶'time'
-
string
TYPE_TIMESTAMP ¶'timestamp'
-
string
TYPE_TIMESTAMP_FRACTIONAL ¶'timestampfractional'
-
string
TYPE_TIMESTAMP_TIMEZONE ¶'timestamptimezone'
-
string
TYPE_TINYINTEGER ¶'tinyinteger'
-
string
TYPE_UUID ¶'uuid'
Method Summary
-
addColumn() public
Add a column to the table.
-
addConstraint() public
Add a constraint.
-
addIndex() public
Add an index.
-
baseColumnType() public
Returns the base type name for the provided column.
-
columns() public
Get the column names in the table.
-
constraints() public
Get the names of all the constraints in the table.
-
defaultValues() public
Get a hash of columns and their default values.
-
dropConstraint() public
Remove a constraint.
-
getColumn() public
Get column data in the table.
-
getColumnType() public
Returns column type or null if a column does not exist.
-
getConstraint() public
Read information about a constraint based on name.
-
getIndex() public
Read information about an index based on name.
-
getOptions() public
Gets the options for a table.
-
getPrimaryKey() public
Get the column(s) used for the primary key.
-
hasAutoincrement() public
Check whether or not a table has an autoIncrement column defined.
-
hasColumn() public
Returns true if a column exists in the schema.
-
indexes() public
Get the names of all the indexes in the table.
-
isNullable() public
Check whether or not a field is nullable
-
isTemporary() public
Gets whether the table is temporary in the database.
-
name() public
Get the name of the table.
-
removeColumn() public
Remove a column from the table schema.
-
setColumnType() public
Sets the type of a column.
-
setOptions() public
Sets the options for a table.
-
setTemporary() public
Sets whether the table is temporary in the database.
-
typeMap() public
Returns an array where the keys are the column names in the schema and the values the database type they have.
Method Detail
addColumn() public ¶
addColumn(string $name, mixed $attrs)
Add a column to the table.
Attributes
Columns can have several attributes:
type
The type of the column. This should be one of CakePHP's abstract types.length
The length of the column.precision
The number of decimal places to store for float and decimal types.default
The default value of the column.null
Whether or not the column can hold nulls.fixed
Whether or not the column is a fixed length column. This is only present/valid with string columns.unsigned
Whether or not the column is an unsigned column. This is only present/valid for integer, decimal, float columns.
In addition to the above keys, the following keys are implemented in some database dialects, but not all:
comment
The comment for the column.
Parameters
-
string
$name The name of the column
-
string|array
$attrs The attributes for the column or the type name.
Returns
$this
addConstraint() public ¶
addConstraint(string $name, mixed $attrs)
Add a constraint.
Used to add constraints to a table. For example primary keys, unique keys and foreign keys.
Attributes
type
The type of constraint being added.columns
The columns in the index.references
The table, column a foreign key references.update
The behavior on update. Options are 'restrict', 'setNull', 'cascade', 'noAction'.delete
The behavior on delete. Options are 'restrict', 'setNull', 'cascade', 'noAction'.
The default for 'update' & 'delete' is 'cascade'.
Parameters
-
string
$name The name of the constraint.
-
array|string
$attrs The attributes for the constraint. If string it will be used as
type
.
Returns
$this
Throws
Cake\Database\Exception
addIndex() public ¶
addIndex(string $name, mixed $attrs)
Add an index.
Used to add indexes, and full text indexes in platforms that support them.
Attributes
type
The type of index being added.columns
The columns in the index.
Parameters
-
string
$name The name of the index.
-
array|string
$attrs The attributes for the index. If string it will be used as
type
.
Returns
$this
Throws
Cake\Database\Exception
baseColumnType() public ¶
baseColumnType(string $column)
Returns the base type name for the provided column.
This represent the database type a more complex class is based upon.
Parameters
-
string
$column The column name to get the base type from
Returns
string|null
The base type name
constraints() public ¶
constraints()
Get the names of all the constraints in the table.
Returns
string[]
defaultValues() public ¶
defaultValues()
Get a hash of columns and their default values.
Returns
array
dropConstraint() public ¶
dropConstraint(string $name)
Remove a constraint.
Parameters
-
string
$name Name of the constraint to remove
Returns
$this
getColumn() public ¶
getColumn(string $name)
Get column data in the table.
Parameters
-
string
$name The column name.
Returns
array|null
Column data or null.
getColumnType() public ¶
getColumnType(string $name)
Returns column type or null if a column does not exist.
Parameters
-
string
$name The column to get the type of.
Returns
string|null
getConstraint() public ¶
getConstraint(string $name)
Read information about a constraint based on name.
Parameters
-
string
$name The name of the constraint.
Returns
array|null
Array of constraint data, or null
getIndex() public ¶
getIndex(string $name)
Read information about an index based on name.
Parameters
-
string
$name The name of the index.
Returns
array|null
Array of index data, or null
getOptions() public ¶
getOptions()
Gets the options for a table.
Table options allow you to set platform specific table level options. For example the engine type in MySQL.
Returns
array
An array of options.
getPrimaryKey() public ¶
getPrimaryKey()
Get the column(s) used for the primary key.
Returns
array
Column name(s) for the primary key. An empty list will be returned when the table has no primary key.
hasAutoincrement() public ¶
hasAutoincrement()
Check whether or not a table has an autoIncrement column defined.
Returns
bool
hasColumn() public ¶
hasColumn(string $name)
Returns true if a column exists in the schema.
Parameters
-
string
$name Column name.
Returns
bool
isNullable() public ¶
isNullable(string $name)
Check whether or not a field is nullable
Missing columns are nullable.
Parameters
-
string
$name The column to get the type of.
Returns
bool
Whether or not the field is nullable.
isTemporary() public ¶
isTemporary()
Gets whether the table is temporary in the database.
Returns
bool
The current temporary setting.
removeColumn() public ¶
removeColumn(string $name)
Remove a column from the table schema.
If the column is not defined in the table, no error will be raised.
Parameters
-
string
$name The name of the column
Returns
$this
setColumnType() public ¶
setColumnType(string $name, string $type)
Sets the type of a column.
Parameters
-
string
$name The column to set the type of.
-
string
$type The type to set the column to.
Returns
$this
setOptions() public ¶
setOptions(array $options)
Sets the options for a table.
Table options allow you to set platform specific table level options. For example the engine type in MySQL.
Parameters
-
array
$options The options to set, or null to read options.
Returns
$this
setTemporary() public ¶
setTemporary(bool $temporary)
Sets whether the table is temporary in the database.
Parameters
-
bool
$temporary Whether or not the table is to be temporary.
Returns
$this
typeMap() public ¶
typeMap()
Returns an array where the keys are the column names in the schema and the values the database type they have.
Returns
array