Класс 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Проверка, является ли поле nullable.
- 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 = [] )
Конструктор.
Параметры
- строка
$table - Имя таблицы.
- массив
$columnsoptional [] - Список столбцов для схемы.
_checkForeignKey()source protected
_checkForeignKey( array $attrs )
Вспомогательный метод для проверки/валидации внешних ключей.
Параметры
- массив
$attrs - Атрибуты для установки.
Возвращает
массивИсключения
Cake\Database\ExceptionПри некорректном определении внешнего ключа.
addColumn()source public
addColumn( string $name , array|string $attrs )
Добавление столбца в таблицу.
Параметры
- строка
$name - Имя столбца
- массив|строка
$attrs - Атрибуты для столбца.
Возвращает
$this
Реализация
Cake\Datasource\SchemaInterface::addColumn() addConstraint()source public
addConstraint( string $name , array $attrs )
Добавление ограничения.
Параметры
- строка
$name - Имя ограничения.
- массив
$attrs - Атрибуты для ограничения.
Возвращает
$this
Исключения
Cake\Database\ExceptionРеализация
Cake\Database\Schema\TableSchemaInterface::addConstraint() addConstraintSql()source public
addConstraintSql( Cake\Database\Connection $connection )
Генерирует SQL-запросы для добавления ограничений к таблице
Параметры
-
Cake\Database\Connection$connection - Соединение для генерации SQL.
Возвращает
массивSQL для добавления ограничений.
Реализация
Cake\Database\Schema\SqlGeneratorInterface::addConstraintSql() addIndex()source public
addIndex( string $name , array $attrs )
Добавить индекс.
Параметры
- строка
$name - Имя индекса.
- массив
$attrs - Атрибуты индекса.
Возвращает
$this
Исключения
Cake\Database\ExceptionРеализация
Cake\Database\Schema\TableSchemaInterface::addIndex() baseColumnType()source public
baseColumnType( string $column )
Возвращает имя базового типа для указанного столбца. Представляет тип базы данных, на котором основан более сложный класс.
Параметры
- строка
$column - Имя столбца для получения базового типа
Возвращает
строка|nullИмя базового типа
Реализация
Cake\Datasource\SchemaInterface::baseColumnType() column()source public deprecated
column( string $name )
Получить данные столбца в таблице.
Устарело
3.5.0 Используйте getColumn() вместо этого.Параметры
- строка
$name - Имя столбца.
Возвращает
массив|nullДанные столбца или null.
columnType()source public deprecated
columnType( string $name , string|null $type = null )
Устанавливает тип столбца или возвращает его текущий тип, если не задан.
Устарело
3.5.0 Используйте setColumnType()/getColumnType() вместо этого.Параметры
- строка
$name - Столбец для получения типа.
- строка|null
$typeнеобязательно null - Тип для установки столбца.
Возвращает
строка|nullТип столбца или null.
columns()source public
columns( )
Получить имена столбцов в таблице.
Возвращает
массив строкРеализация
Cake\Datasource\SchemaInterface::columns() constraint()source public deprecated
constraint( string $name )
Получить информацию о ограничении на основе имени.
Устарело
3.5.0 Используйте getConstraint() вместо этого.Параметры
- строка
$name - Имя ограничения.
Возвращает
массив|nullМассив данных ограничения или null
constraints()source public
constraints( )
Получить имена всех ограничений в таблице.
Возвращает
массив строкРеализация
Cake\Database\Schema\TableSchemaInterface::constraints() createSql()source public
createSql( Cake\Database\Connection $connection )
Сгенерировать SQL для создания таблицы.
Параметры
-
Cake\Database\Connection$connection - Соединение для генерации SQL.
Возвращает
массивСписок SQL-запросов для создания таблицы и необходимых индексов.
Реализация
Cake\Database\Schema\SqlGeneratorInterface::createSql() defaultValues()source public
defaultValues( )
Получить хеш столбцов и их значений по умолчанию.
Возвращает
массивРеализация
Cake\Datasource\SchemaInterface::defaultValues() dropConstraint()source public
dropConstraint( string $name )
Удалить ограничение.
Параметры
- строка
$name - Имя ограничения для удаления
Возвращает
$this
Реализация
Cake\Database\Schema\TableSchemaInterface::dropConstraint() dropConstraintSql()source public
dropConstraintSql( Cake\Database\Connection $connection )
Сгенерировать SQL-запросы для удаления ограничений таблицы
Параметры
-
Cake\Database\Connection$connection - Соединение для генерации SQL.
Возвращает
массивSQL для удаления таблицы.
Реализация
Cake\Database\Schema\SqlGeneratorInterface::dropConstraintSql() dropSql()source public
dropSql( Cake\Database\Connection $connection )
Сгенерировать SQL для удаления таблицы.
Параметры
-
Cake\Database\Connection$connection - Соединение для генерации SQL.
Возвращает
массивSQL для удаления таблицы.
Реализация
Cake\Database\Schema\SqlGeneratorInterface::dropSql() getColumn()source public
getColumn( string $name )
Получить данные столбца в таблице.
Параметры
- строка
$name - Имя столбца.
Возвращает
массив|nullДанные столбца или null.
Реализация
Cake\Datasource\SchemaInterface::getColumn() getColumnType()source public
getColumnType( string $name )
Возвращает тип столбца или null, если столбец не существует.
Параметры
- строка
$name - Столбец для получения типа.
Возвращает
строка|nullРеализация
Cake\Datasource\SchemaInterface::getColumnType() getConstraint()source public
getConstraint( string $name )
Получить информацию о ограничении на основе имени.
Параметры
- строка
$name - Имя ограничения.
Возвращает
массив|nullМассив данных ограничения или null
Реализация
Cake\Database\Schema\TableSchemaInterface::getConstraint() getIndex()source public
getIndex( string $name )
Получить информацию об индексе на основе имени.
Параметры
- строка
$name - Имя индекса.
Возвращает
массив|nullМассив данных индекса или null
Реализация
Cake\Database\Schema\TableSchemaInterface::getIndex() getOptions()source public
getOptions( )
Получает опции для таблицы.
Возвращает
массивМассив опций.
Реализация
Cake\Datasource\SchemaInterface::getOptions() hasAutoincrement()source public
hasAutoincrement( )
Проверить, есть ли в таблице столбец с автоинкрементом.
Возвращает
логическое значениеРеализация
Cake\Database\Schema\TableSchemaInterface::hasAutoincrement() hasColumn()source public
hasColumn( string $name )
Возвращает true, если столбец существует в схеме.
Параметры
- строка
$name - Имя столбца.
Возвращает
логическое значениеРеализация
Cake\Datasource\SchemaInterface::hasColumn() index()source public deprecated
index( string $name )
Получить информацию об индексе по его имени.
Устаревший
3.5.0 Используйте метод getIndex() вместо этого.Параметры
- строка
$name - Имя индекса.
Возвращает
array|nullМассив данных индекса или null
indexes()source public
indexes( )
Получить имена всех индексов в таблице.
Возвращает
string[]Реализация
Cake\Database\Schema\TableSchemaInterface::indexes() isNullable()source public
isNullable( string $name )
Проверить, является ли поле nullable
Параметры
- строка
$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() вместо этого.Параметры
- массив|null
$optionsнеобязательный null - Параметры для установки или null для чтения параметров.
Возвращает
$this|массив Либо экземпляр TableSchema, либо массив параметров при чтении.
primaryKey()source public
primaryKey( )
Получить имя(а) столбца(ов) первичного ключа.
Возвращает
массивИмя(а) столбца(ов) первичного ключа. Если в таблице нет первичного ключа, возвращается пустой массив.
Реализация
Cake\Database\Schema\TableSchemaInterface::primaryKey() removeColumn()source public
removeColumn( string $name )
Удалить столбец из схемы таблицы.
Параметры
- строка
$name - Имя столбца
Возвращает
$this
Реализация
Cake\Datasource\SchemaInterface::removeColumn() setColumnType()source public
setColumnType( string $name , string $type )
Устанавливает тип столбца.
Параметры
- строка
$name - Столбец, для которого нужно установить тип.
- строка
$type - Тип, на который нужно установить столбец.
Возвращает
$this
Реализация
Cake\Datasource\SchemaInterface::setColumnType() setOptions()source public
setOptions( array $options )
Устанавливает параметры таблицы.
Параметры
- массив
$options - Параметры для установки.
Возвращает
$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
$temporaryнеобязательный null - Является ли таблица временной
Возвращает
$this|bool Экземпляр TableSchema, текущее значение временности
truncateSql()source public
truncateSql( Cake\Database\Connection $connection )
Сгенерировать SQL-запросы для удаления таблицы
Параметры
-
Cake\Database\Connection$connection - Подключение для генерации SQL.
Возвращает
массивSQL-запросы для удаления таблицы.
Реализация
Cake\Database\Schema\SqlGeneratorInterface::truncateSql() typeMap()source public
typeMap( )
Возвращает массив, где ключи — имена столбцов в схеме, а значения — типы данных базы данных.
Возвращает
массивРеализация
Cake\Datasource\SchemaInterface::typeMap() Подробное описание свойств
$_columnExtrassource
protected static массив
Дополнительные свойства, специфичные для типа.
[
'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 массив
Допустимые ключи, которые можно использовать в определении столбца.
[
'type' => null,
'baseType' => null,
'length' => null,
'precision' => null,
'null' => null,
'default' => null,
'comment' => null,
] $_indexKeyssource
protected static массив
Допустимые ключи, которые можно использовать в определении индекса.
[
'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.7/class-Cake.Database.Schema.TableSchema.html