Класс TableSchema
Представляет отдельную таблицу в схеме базы данных.
Может быть заполнен с помощью API рефлексии или путем поэтапного создания экземпляра с помощью методов.
После создания экземпляры TableSchema могут быть добавлены в объекты Schema\Collection. Их также можно преобразовать в SQL с помощью методов createSql(), dropSql() и truncateSql().
- Cake\Database\Schema\TableSchema реализует Cake\Database\Schema\TableSchemaInterface, Cake\Database\Schema\SqlGeneratorInterface
Краткое описание констант
-
stringACTION_CASCADE'cascade' -
stringACTION_NO_ACTION'noAction' -
stringACTION_RESTRICT'restrict' -
stringACTION_SET_DEFAULT'setDefault' -
stringACTION_SET_NULL'setNull' -
stringCONSTRAINT_FOREIGN'foreign' -
stringCONSTRAINT_PRIMARY'primary' -
stringCONSTRAINT_UNIQUE'unique' -
stringINDEX_FULLTEXT'fulltext' -
stringINDEX_INDEX'index' -
integerLENGTH_LONG4294967295 -
integerLENGTH_MEDIUM16777215 -
integerLENGTH_TINY255
Краткое описание унаследованных констант
-
TYPE_BIGINTEGER,TYPE_BINARY,TYPE_BINARY_UUID,TYPE_BOOLEAN,TYPE_DATE,TYPE_DATETIME,TYPE_DECIMAL,TYPE_FLOAT,TYPE_INTEGER,TYPE_JSON,TYPE_SMALLINTEGER,TYPE_STRING,TYPE_TEXT,TYPE_TIME,TYPE_TIMESTAMP,TYPE_TINYINTEGER,TYPE_UUID
Краткое описание свойств
- Дополнительные свойства, специфичные для типа.
array -
arrayДопустимые ключи, которые могут быть использованы в определении столбца.
-
$_columnsprotectedСтолбцы в таблице.array -
$_constraintsprotectedОграничения в таблице.array -
arrayДопустимые ключи, которые могут быть использованы в определении индекса.
-
$_indexesprotectedИндексы в таблице.array -
$_optionsprotectedПараметры таблицы.array -
$_tableprotectedИмя таблицыstring -
$_temporaryprotectedЯвляется ли таблица временнойboolean -
$_typeMapprotectedКарта со столбцами и типамиarray - Имена допустимых типов ограничений.
array - Имена допустимых действий с внешними ключами.
array - Имена допустимых типов индексов.
array - Допустимая длина столбца, которая может быть использована со столбцами типа text
array
Краткое описание методов
- __construct() publicКонструктор.
- __debugInfo() publicВозвращает массив схемы таблицы.
- _checkForeignKey() protectedВспомогательный метод для проверки/валидации внешних ключей.
- addColumn() publicДобавить столбец в таблицу.
- addConstraint() publicДобавить ограничение.
- addConstraintSql() publicГенерирует SQL-запросы для добавления ограничений к таблице
- addIndex() publicДобавить индекс.
- baseColumnType() public
Возвращает имя базового типа для указанного столбца. Это представляет тип базы данных, на котором основан более сложный класс.
- Получить данные столбца в таблице.
-
Устанавливает тип столбца или возвращает его текущий тип, если он не задан.
- columns() publicПолучить имена столбцов в таблице.
- Считывает информацию об ограничении по имени.
- constraints() publicПолучить имена всех ограничений в таблице.
- createSql() publicГенерирует SQL для создания таблицы.
- defaultValues() publicПолучить хеш столбцов и их значений по умолчанию.
- dropConstraint() publicУдалить ограничение.
- dropConstraintSql() publicГенерирует SQL-запросы для удаления ограничений из таблицы
- dropSql() publicГенерирует SQL для удаления таблицы.
- getColumn() publicПолучить данные столбца в таблице.
- getColumnType() publicВозвращает тип столбца или null, если столбец не существует.
- getConstraint() publicСчитывает информацию об ограничении по имени.
- getIndex() publicСчитывает информацию об индексе по имени.
- getOptions() publicПолучает параметры таблицы.
- hasAutoincrement() publicПроверить, определён ли столбец autoIncrement в таблице.
- hasColumn() publicВозвращает true, если столбец существует в схеме.
- Считывает информацию об индексе по имени.
- indexes() publicПолучить имена всех индексов в таблице.
- isNullable() publicПроверить, является ли поле необязательным.
- isTemporary() publicПолучить, является ли таблица временной в базе данных.
- name() publicПолучить имя таблицы.
- Получить/установить параметры таблицы.
- primaryKey() publicПолучить столбец(ы), используемый для первичного ключа.
- removeColumn() publicУдалить столбец из схемы таблицы.
- setColumnType() publicУстанавливает тип столбца.
- setOptions() publicУстанавливает параметры таблицы.
- setTemporary() publicУстанавливает, является ли таблица временной в базе данных.
- Получить/установить, является ли таблица временной в базе данных.
- truncateSql() publicГенерировать SQL-запросы для обнуления таблицы
- typeMap() public
Возвращает массив, где ключи — имена столбцов в схеме, а значения — типы базы данных.
Подробное описание метода
__construct()source public
__construct( string $table , array $columns = [] )
Конструктор.
Параметры
- string
$table - Имя таблицы.
- array
$columnsoptional [] - Список столбцов для схемы.
_checkForeignKey()source protected
_checkForeignKey( array $attrs )
Вспомогательный метод для проверки/валидации внешних ключей.
Параметры
- array
$attrs - Атрибуты для установки.
Возвращает
arrayИсключения
Cake\Database\ExceptionПри невалидном определении внешнего ключа.
addColumn()source public
addColumn( string $name , array|string $attrs )
Добавить столбец в таблицу.
Параметры
- string
$name - Имя столбца
- array|string
$attrs - Атрибуты столбца.
Возвращает
$this
Реализация
Cake\Datasource\SchemaInterface::addColumn() addConstraint()source public
addConstraint( string $name , array $attrs )
Добавить ограничение.
Параметры
- string
$name - Имя ограничения.
- array
$attrs - Атрибуты ограничения.
Возвращает
$this
Исключения
Cake\Database\ExceptionРеализация
Cake\Database\Schema\TableSchemaInterface::addConstraint() addConstraintSql()source public
addConstraintSql( Cake\Database\Connection $connection )
Генерирует SQL-запросы для добавления ограничений к таблице
Параметры
-
Cake\Database\Connection$connection - Соединение для генерации SQL.
Возвращает
arraySQL для добавления ограничений.
Реализация
Cake\Database\Schema\SqlGeneratorInterface::addConstraintSql() addIndex()source public
addIndex( string $name , array $attrs )
Добавить индекс.
Параметры
- string
$name - Имя индекса.
- array
$attrs - Атрибуты индекса.
Возвращает
$this
Исключения
Cake\Database\ExceptionРеализация
Cake\Database\Schema\TableSchemaInterface::addIndex() baseColumnType()source public
baseColumnType( string $column )
Возвращает базовое имя типа для указанного столбца. Это представляет тип базы данных, на котором основан более сложный класс.
Параметры
- string
$column - Имя столбца для получения базового типа
Возвращает
string|nullБазовое имя типа
Реализация
Cake\Datasource\SchemaInterface::baseColumnType() column()source public deprecated
column( string $name )
Получить данные столбца в таблице.
Устарело
3.5.0 Используйте getColumn() вместо этого.Параметры
- string
$name - Имя столбца.
Возвращает
array|nullДанные столбца или null.
columnType()source public deprecated
columnType( string $name , string|null $type = null )
Устанавливает тип столбца или возвращает его текущий тип, если он не передан.
Устарело
3.5.0 Используйте setColumnType()/getColumnType() вместо этого.Параметры
- string
$name - Столбец, для которого нужно получить тип.
- string|null
$typeoptional null - Тип, для которого необходимо установить столбец.
Возвращает
string|nullТип столбца или null.
columns()source public
columns( )
Получить имена столбцов в таблице.
Возвращает
string[]Реализация
Cake\Datasource\SchemaInterface::columns() constraint()source public deprecated
constraint( string $name )
Получить информацию о ограничении на основе имени.
Устарело
3.5.0 Используйте getConstraint() вместо этого.Параметры
- string
$name - Имя ограничения.
Возвращает
array|nullМассив данных о ограничении или null
constraints()source public
constraints( )
Получить имена всех ограничений в таблице.
Возвращает
string[]Реализация
Cake\Database\Schema\TableSchemaInterface::constraints() createSql()source public
createSql( Cake\Database\Connection $connection )
Сгенерировать SQL для создания таблицы.
Параметры
-
Cake\Database\Connection$connection - Подключение для генерации SQL.
Возвращает
arrayСписок SQL-запросов для создания таблицы и необходимых индексов.
Реализация
Cake\Database\Schema\SqlGeneratorInterface::createSql() defaultValues()source public
defaultValues( )
Получить хеш столбцов и их значений по умолчанию.
Возвращает
arrayРеализация
Cake\Datasource\SchemaInterface::defaultValues() dropConstraint()source public
dropConstraint( string $name )
Удалить ограничение.
Параметры
- string
$name - Имя ограничения для удаления
Возвращает
$this
Реализация
Cake\Database\Schema\TableSchemaInterface::dropConstraint() dropConstraintSql()source public
dropConstraintSql( Cake\Database\Connection $connection )
Сгенерировать SQL-запросы для удаления ограничений таблицы
Параметры
-
Cake\Database\Connection$connection - Подключение для генерации SQL.
Возвращает
arraySQL для удаления таблицы.
Реализация
Cake\Database\Schema\SqlGeneratorInterface::dropConstraintSql() dropSql()source public
dropSql( Cake\Database\Connection $connection )
Сгенерировать SQL для удаления таблицы.
Параметры
-
Cake\Database\Connection$connection - Подключение для генерации SQL.
Возвращает
arraySQL для удаления таблицы.
Реализация
Cake\Database\Schema\SqlGeneratorInterface::dropSql() getColumn()source public
getColumn( string $name )
Получить данные столбца в таблице.
Параметры
- string
$name - Имя столбца.
Возвращает
array|nullДанные столбца или null.
Реализация
Cake\Datasource\SchemaInterface::getColumn() getColumnType()source public
getColumnType( string $name )
Возвращает тип столбца или null, если столбец не существует.
Параметры
- string
$name - Столбец, для которого нужно получить тип.
Возвращает
string|nullРеализация
Cake\Datasource\SchemaInterface::getColumnType() getConstraint()source public
getConstraint( string $name )
Получить информацию о ограничении на основе имени.
Параметры
- string
$name - Имя ограничения.
Возвращает
array|nullМассив данных о ограничении или null
Реализация
Cake\Database\Schema\TableSchemaInterface::getConstraint() getIndex()source public
getIndex( string $name )
Получить информацию об индексе на основе имени.
Параметры
- string
$name - Имя индекса.
Возвращает
array|nullМассив данных индекса или null
Реализация
Cake\Database\Schema\TableSchemaInterface::getIndex() getOptions()source public
getOptions( )
Получить параметры таблицы.
Возвращает
arrayМассив параметров.
Реализация
Cake\Datasource\SchemaInterface::getOptions() hasAutoincrement()source public
hasAutoincrement( )
Проверить, определен ли в таблице столбец autoIncrement.
Возвращает
booleanРеализация
Cake\Database\Schema\TableSchemaInterface::hasAutoincrement() hasColumn()source public
hasColumn( string $name )
Возвращает true, если столбец существует в схеме.
Параметры
- string
$name - Имя столбца.
Возвращает
booleanРеализация
Cake\Datasource\SchemaInterface::hasColumn() index()source public deprecated
index( string $name )
Получить информацию об индексе на основе имени.
Устарело
3.5.0 Используйте getIndex() вместо этого.Параметры
- string
$name - Имя индекса.
Возвращает
array|nullМассив данных индекса или null
indexes()source public
indexes( )
Получить имена всех индексов в таблице.
Возвращает
string[]Реализация
Cake\Database\Schema\TableSchemaInterface::indexes()
isNullable()source public
isNullable( string $name )
Проверить, является ли поле nullable.
Параметры
- string
$name - Имя столбца, тип которого нужно получить.
Возвращает
booleanЯвляется ли поле nullable.
Реализация
Cake\Datasource\SchemaInterface::isNullable()
isTemporary()source public
isTemporary( )
Получить, является ли таблица временной в базе данных.
Возвращает
booleanТекущее значение временной таблицы.
Реализация
Cake\Database\Schema\TableSchemaInterface::isTemporary()
name()source public
name( )
Получить имя таблицы.
Возвращает
stringРеализация
Cake\Datasource\SchemaInterface::name()
options()source public deprecated
options( array|null $options = null )
Получить/установить опции для таблицы.
Опции таблицы позволяют устанавливать опции уровня таблицы, специфичные для платформы. Например, тип движка в MySQL.
Устарело
3.4.0 Используйте setOptions()/getOptions() вместо этого.Параметры
- array|null
$optionsoptional null - Опции для установки, или null для чтения опций.
Возвращает
$this|array Экземпляр TableSchema или массив опций при чтении.
primaryKey()source public
primaryKey( )
Получить столбец(ы), используемый для первичного ключа.
Возвращает
arrayИмя столбца(ов) для первичного ключа. Пустой список будет возвращён, если таблица не имеет первичного ключа.
Реализация
Cake\Database\Schema\TableSchemaInterface::primaryKey()
removeColumn()source public
removeColumn( string $name )
Удалить столбец из схемы таблицы.
Параметры
- string
$name - Имя столбца
Возвращает
$this
Реализация
Cake\Datasource\SchemaInterface::removeColumn()
setColumnType()source public
setColumnType( string $name , string $type )
Устанавливает тип столбца.
Параметры
- string
$name - Столбец, для которого нужно установить тип.
- string
$type - Тип для установки столбца.
Возвращает
$this
Реализация
Cake\Datasource\SchemaInterface::setColumnType()
setOptions()source public
setOptions( array $options )
Устанавливает опции для таблицы.
Параметры
- array
$options - Опции для установки, или null для чтения опций.
Возвращает
$this
Реализация
Cake\Datasource\SchemaInterface::setOptions()
setTemporary()source public
setTemporary( boolean $temporary )
Устанавливает, является ли таблица временной в базе данных.
Параметры
- boolean
$temporary - Является ли таблица временной.
Возвращает
$this
Реализация
Cake\Database\Schema\TableSchemaInterface::setTemporary()
temporary()source public deprecated
temporary( boolean|null $temporary = null )
Получить/установить, является ли таблица временной в базе данных
Устарело
3.4.0 Используйте setTemporary()/isTemporary() вместо этого.Параметры
- boolean|null
$temporaryoptional null - Является ли таблица временной
Возвращает
$this|bool Экземпляр TableSchema или текущее значение временной таблицы
truncateSql()source public
truncateSql( Cake\Database\Connection $connection )
Сгенерировать SQL-запросы для усечения таблицы
Параметры
-
Cake\Database\Connection$connection - Подключение для генерации SQL.
Возвращает
arraySQL для усечения таблицы.
Реализация
Cake\Database\Schema\SqlGeneratorInterface::truncateSql()
typeMap()source public
typeMap( )
Возвращает массив, где ключи — имена столбцов в схеме, а значения — тип базы данных, который они имеют.
Возвращает
arrayРеализация
Cake\Datasource\SchemaInterface::typeMap()
Подробное описание свойств
$_columnExtrassource
protected static array
Дополнительные свойства, специфичные для типа.
[
'string' => [
'fixed' => null,
'collate' => null,
],
'text' => [
'collate' => null,
],
'tinyinteger' => [
'unsigned' => null,
],
'smallinteger' => [
'unsigned' => null,
],
'integer' => [
'unsigned' => null,
'autoIncrement' => null,
],
'biginteger' => [
'unsigned' => null,
'autoIncrement' => null,
],
'decimal' => [
'unsigned' => null,
],
'float' => [
'unsigned' => null,
],
] $_columnKeyssource
protected static array
Допустимые ключи, которые могут быть использованы в определении столбца.
[
'type' => null,
'baseType' => null,
'length' => null,
'precision' => null,
'null' => null,
'default' => null,
'comment' => null,
] $_indexKeyssource
protected static array
Допустимые ключи, которые могут быть использованы в определении индекса.
[
'type' => null,
'columns' => [],
'length' => [],
'references' => [],
'update' => 'restrict',
'delete' => 'restrict',
] $_validConstraintTypessource
protected static array
Названия допустимых типов ограничений.
[
self::CONSTRAINT_PRIMARY,
self::CONSTRAINT_UNIQUE,
self::CONSTRAINT_FOREIGN,
] $_validForeignKeyActionssource
protected static array
Названия допустимых действий для внешних ключей.
[
self::ACTION_CASCADE,
self::ACTION_SET_NULL,
self::ACTION_SET_DEFAULT,
self::ACTION_NO_ACTION,
self::ACTION_RESTRICT,
] $_validIndexTypessource
protected static array
Названия допустимых типов индексов.
[
self::INDEX_INDEX,
self::INDEX_FULLTEXT,
] $columnLengthssource
public static array
Допустимые длины столбцов, которые можно использовать со столбцами типа text
[
'tiny' => self::LENGTH_TINY,
'medium' => self::LENGTH_MEDIUM,
'long' => self::LENGTH_LONG
]
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.8/class-Cake.Database.Schema.TableSchema.html