Класс TableSchema
Представляет собой одну таблицу в схеме базы данных.
Может быть заполнена с помощью API отражения или путем пошагового создания экземпляра с использованием методов.
После создания экземпляры TableSchema могут быть добавлены в объекты Schema\Collection. Они также могут быть преобразованы в SQL с помощью методов createSql(), dropSql() и truncateSql().
Константы
-
stringACTION_CASCADE'cascade'
Действие каскада внешнего ключа
-
stringACTION_NO_ACTION'noAction'
Без действия для внешнего ключа
-
stringACTION_RESTRICT'restrict'
Действие ограничения внешнего ключа
-
stringACTION_SET_DEFAULT'setDefault'
Значение по умолчанию для внешнего ключа
-
stringACTION_SET_NULL'setNull'
Установить значение NULL для внешнего ключа
-
stringCONSTRAINT_FOREIGN'foreign'
Тип внешнего ограничения
-
stringCONSTRAINT_PRIMARY'primary'
Тип первичного ограничения
-
stringCONSTRAINT_UNIQUE'unique'
Тип уникального ограничения
-
stringINDEX_FULLTEXT'fulltext'
Тип полнотекстового индекса
-
stringINDEX_INDEX'index'
Индекс - тип индекса
-
intLENGTH_LONG4294967295
Длина столбца при использовании типа столбца
long -
intLENGTH_MEDIUM16777215
Длина столбца при использовании типа столбца
medium -
intLENGTH_TINY255
Длина столбца при использовании типа столбца
tiny -
stringTYPE_BIGINTEGER'biginteger'
Тип столбца Большое целое число
-
stringTYPE_BINARY'binary'
Двоичный тип столбца
-
stringTYPE_BINARY_UUID'binaryuuid'
Двоичный тип столбца UUID
-
stringTYPE_BOOLEAN'boolean'
Логический тип столбца
-
stringTYPE_CHAR'char'
Символьный тип столбца
-
stringTYPE_DATE'date'
Тип столбца Дата
-
stringTYPE_DATETIME'datetime'
Тип столбца Дата и время
-
stringTYPE_DATETIME_FRACTIONAL'datetimefractional'
Тип столбца Дата и время с дробными секундами
-
stringTYPE_DECIMAL'decimal'
Десятичный тип столбца
-
stringTYPE_FLOAT'float'
Тип столбца С плавающей точкой
-
stringTYPE_INTEGER'integer'
Целочисленный тип столбца
-
stringTYPE_JSON'json'
Тип столбца JSON
-
stringTYPE_SMALLINTEGER'smallinteger'
Тип столбца Малое целое число
-
stringTYPE_STRING'string'
Строковый тип столбца
-
stringTYPE_TEXT'text'
Текстовый тип столбца
-
stringTYPE_TIME'time'
Тип столбца Время
-
stringTYPE_TIMESTAMP'timestamp'
Тип столбца Метка времени
-
stringTYPE_TIMESTAMP_FRACTIONAL'timestampfractional'
Тип столбца Метка времени с дробными секундами
-
stringTYPE_TIMESTAMP_TIMEZONE'timestamptimezone'
Тип столбца Метка времени с часовым поясом
-
stringTYPE_TINYINTEGER'tinyinteger'
Тип столбца Очень маленькое целое число
-
stringTYPE_UUID'uuid'
Тип столбца UUID
Резюме свойств
- $_columnExtras protected static
arrayДополнительные свойства, специфичные для типа.
- $_columnKeys protected static
arrayДопустимые ключи, которые могут быть использованы в определении столбца.
- $_columns protected
arrayСтолбцы в таблице.
- $_constraints protected
arrayОграничения в таблице.
- $_indexKeys protected static
arrayДопустимые ключи, которые могут быть использованы в определении индекса.
- $_indexes protected
arrayИндексы в таблице.
- $_options protected
arrayПараметры для таблицы.
- $_table protected
stringИмя таблицы
- $_temporary protected
boolЯвляется ли таблица временной
- $_typeMap protected
arrayКарта со столбцами к типам
- $_validConstraintTypes protected static
arrayИмена допустимых типов ограничений.
- $_validForeignKeyActions protected static
arrayИмена допустимых действий с внешними ключами.
- $_validIndexTypes protected static
arrayИмена допустимых типов индексов.
- $columnLengths public static
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
Получить параметры таблицы.
-
getPrimaryKey() public
Получить столбец(ы), используемый(ые) для первичного ключа.
-
hasAutoincrement() public
Проверить, определен ли столбец автоинкрементирования в таблице.
-
hasColumn() public
Возвращает true, если столбец существует в схеме.
-
indexes() public
Получить имена всех индексов в таблице.
-
isNullable() public
Проверить, может ли поле быть NULL.
-
isTemporary() public
Получить, является ли таблица временной в базе данных.
-
name() public
Получить имя таблицы.
-
primaryKey() public deprecated
Получить столбец(ы), используемый(ые) для первичного ключа.
-
removeColumn() public
Удалить столбец из схемы таблицы.
-
setColumnType() public
Установить тип столбца.
-
setOptions() public
Установить параметры таблицы.
-
setTemporary() public
Установить, является ли таблица временной в базе данных.
-
truncateSql() public
Генерирует SQL-запросы для усечения таблицы.
-
typeMap() public
Возвращает массив, где ключи — имена столбцов в схеме, а значения — типы данных базы данных.
Подроное описание методов
__construct() public
__construct(string $table, array $columns = [])
Конструктор.
Параметры
-
string$table Имя таблицы.
-
array$columns optional Список столбцов для схемы.
__debugInfo() public
__debugInfo(): array
Возвращает массив схемы таблицы.
Возвращает
array_checkForeignKey() protected
_checkForeignKey(array $attrs): array
Вспомогательный метод для проверки/валидации внешних ключей.
Параметры
-
array$attrs Атрибуты для установки.
Возвращает
arrayВызывает исключение
Cake\Database\Exception\DatabaseExceptionКогда определение внешнего ключа недействительно.
addColumn() public
addColumn(string $name, string|array $attrs): $this
Добавить столбец в таблицу.
Атрибуты
Столбцы могут иметь несколько атрибутов:
-
typeТип столбца. Это должен быть один из абстрактных типов CakePHP. -
lengthДлина столбца. -
precisionКоличество десятичных знаков для хранения типов float и decimal. -
defaultЗначение по умолчанию столбца. -
nullМожет ли столбец содержать значения NULL. -
fixedЯвляется ли столбец столбцом фиксированной длины. Это присутствует/действительно только для строковых столбцов. -
unsignedЯвляется ли столбец беззнаковым. Это присутствует/действительно только для столбцов типа integer, decimal, float.
В дополнение к вышеперечисленным ключам, следующие ключи реализованы в некоторых, но не во всех диалектах баз данных:
-
commentКомментарий к столбцу.
Параметры
-
string$name -
string|array$attrs
Возвращает
$thisaddConstraint() public
addConstraint(string $name, array|string $attrs): $this
Добавить ограничение.
Используется для добавления ограничений к таблице. Например, первичные ключи, уникальные ключи и внешние ключи.
Атрибуты
-
typeТип добавляемого ограничения. -
columnsСтолбцы в индексе. -
referencesТаблица, столбец, на который ссылается внешний ключ. -
updateПоведение при обновлении. Варианты: 'restrict', 'setNull', 'cascade', 'noAction'. -
deleteПоведение при удалении. Варианты: 'restrict', 'setNull', 'cascade', 'noAction'.
Значение по умолчанию для 'update' & 'delete' - 'cascade'.
Параметры
-
string$name -
array|string$attrs
Возвращает
$thisaddConstraintSql() public
addConstraintSql(Cake\Database\Connection $connection): array
Генерирует операторы SQL для добавления ограничений к таблице
Параметры
-
Cake\Database\Connection$connection
Возвращает
arrayaddIndex() public
addIndex(string $name, array|string $attrs): $this
Добавить индекс.
Используется для добавления индексов и индексов полного текста в платформах, которые их поддерживают.
Атрибуты
-
typeТип добавляемого индекса. -
columnsСтолбцы в индексе.
Параметры
-
string$name -
array|string$attrs
Возвращает
$thisbaseColumnType() public
baseColumnType(string $column): string|null
Возвращает базовое имя типа для предоставленного столбца. Это представляет тип базы данных, на котором основан более сложный класс.
Параметры
-
string$column
Возвращает
string|nullcolumns() public
columns(): string[]
Получить имена столбцов в таблице.
Возвращает
string[]constraints() public
constraints(): string[]
Получить имена всех ограничений в таблице.
Возвращает
string[]createSql() public
createSql(Cake\Database\Connection $connection): array
Генерирует SQL для создания таблицы.
Использует соединение для доступа к диалекту схемы для генерации специфичного для платформы SQL.
Параметры
-
Cake\Database\Connection$connection
Возвращает
arraydefaultValues() public
defaultValues(): array
Получить хэш столбцов и их значений по умолчанию.
Возвращает
arraydropConstraint() public
dropConstraint(string $name): $this
Удалить ограничение.
Параметры
-
string$name
Возвращает
$thisdropConstraintSql() public
dropConstraintSql(Cake\Database\Connection $connection): array
Генерирует операторы SQL для удаления ограничений из таблицы
Параметры
-
Cake\Database\Connection$connection
Возвращает
arraydropSql() public
dropSql(Cake\Database\Connection $connection): array
Генерирует SQL для удаления таблицы.
Использует соединение для доступа к диалекту схемы для генерации специфичного для платформы SQL.
Параметры
-
Cake\Database\Connection$connection
Возвращает
arraygetColumn() public
getColumn(string $name): array|null
Получить данные столбца в таблице.
Параметры
-
string$name
Возвращает
array|nullgetColumnType() public
getColumnType(string $name): string|null
Возвращает тип столбца или null, если столбец не существует.
Параметры
-
string$name
Возвращает
string|nullgetConstraint() public
getConstraint(string $name): array|null
Прочитать информацию об ограничении по имени.
Параметры
-
string$name
Возвращает
array|nullgetIndex() public
getIndex(string $name): array|null
Прочитать информацию об индексе по имени.
Параметры
-
string$name
Возвращает
array|nullgetOptions() public
getOptions(): array
Получает параметры для таблицы.
Параметры таблицы позволяют устанавливать параметры уровня таблицы, специфичные для платформы. Например, тип engine в MySQL.
Возвращает
arraygetPrimaryKey() public
getPrimaryKey(): array
Получить столбец(ы), используемый(ые) для первичного ключа.
Возвращает
arrayhasAutoincrement() public
hasAutoincrement(): bool
Проверить, определен ли в таблице столбец с autoIncrement.
Возвращает
boolhasColumn() public
hasColumn(string $name): bool
Возвращает true, если столбец существует в схеме.
Параметры
-
string$name
Возвращает
boolindexes() public
indexes(): string[]
Получить имена всех индексов в таблице.
Возвращает
string[]isNullable() public
isNullable(string $name): bool
Проверить, является ли поле nullable
Отсутствующие столбцы являются nullable.
Параметры
-
string$name
Возвращает
boolisTemporary() public
isTemporary(): bool
Получает, является ли таблица временной в базе данных.
Возвращает
boolname() public
name(): string
Получить имя таблицы.
Возвращает
stringprimaryKey() public
primaryKey(): array
Получить столбец(ы), используемый для первичного ключа.
Возвращает
arrayremoveColumn() public
removeColumn(string $name): $this
Удалить столбец из схемы таблицы.
Если столбец не определен в таблице, ошибка не будет поднята.
Параметры
-
string$name
Возвращает
$thissetColumnType() public
setColumnType(string $name, string $type): $this
Устанавливает тип столбца.
Параметры
-
string$name -
string$type
Возвращает
$thissetOptions() public
setOptions(array $options): $this
Устанавливает параметры для таблицы.
Параметры таблицы позволяют установить платформоспецифические параметры уровня таблицы. Например, тип движка в MySQL.
Параметры
-
array$options
Возвращает
$thissetTemporary() public
setTemporary(bool $temporary): $this
Устанавливает, является ли таблица временной в базе данных.
Параметры
-
bool$temporary
Возвращает
$thistruncateSql() public
truncateSql(Cake\Database\Connection $connection): array
Генерировать SQL-команды для усечения таблицы
Параметры
-
Cake\Database\Connection$connection
Возвращает
arraytypeMap() public
typeMap(): array
Возвращает массив, где ключи — имена столбцов в схеме, а значения — тип базы данных.
Возвращает
arrayПодробное описание свойств
$_columnExtras protected static
Дополнительные свойства, специфичные для типа.
Тип
array$_columnKeys protected static
Допустимые ключи, которые могут быть использованы в определении столбца.
Тип
array$_columns protected
Столбцы в таблице.
Тип
array$_constraints protected
Ограничения в таблице.
Тип
array$_indexKeys protected static
Допустимые ключи, которые могут быть использованы в определении индекса.
Тип
array$_indexes protected
Индексы в таблице.
Тип
array$_options protected
Параметры для таблицы.
Тип
array$_table protected
Имя таблицы
Тип
string$_temporary protected
Является ли таблица временной
Тип
bool$_typeMap protected
Карта со столбцами и типами
Тип
array$_validConstraintTypes protected static
Имена допустимых типов ограничений.
Тип
array$_validForeignKeyActions protected static
Имена допустимых действий для внешних ключей.
Тип
array$_validIndexTypes protected static
Имена допустимых типов индексов.
Тип
array$columnLengths public static
Допустимая длина столбца, которая может быть использована со столбцами типа text
Тип
array
© 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/4.2/class-Cake.Database.Schema.TableSchema.html