Абстрактный класс yii\db\Schema
| Наследование | yii\db\Schema » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Подклассы | yii\db\cubrid\Schema, yii\db\mssql\Schema, yii\db\mysql\Schema, yii\db\oci\Schema, yii\db\pgsql\Schema, yii\db\sqlite\Schema |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/db/Schema.php |
Schema — базовый класс для конкретных классов схемы, специфичных для СУБД.
Schema представляет информацию о схеме базы данных, специфичную для СУБД.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $columnSchemaClass | string | Класс схемы столбца | yii\db\Schema |
| $db | yii\db\Connection | Подключение к базе данных | yii\db\Schema |
| $defaultSchema | string | Имя схемы по умолчанию, используемое для текущей сессии. | yii\db\Schema |
| $exceptionMap | array | Мапинг ошибок БД и соответствующих исключений. Если левая часть найдена в сообщении об ошибке БД, используется класс исключения из правой части. | yii\db\Schema |
| $lastInsertID | string | Идентификатор последней вставленной строки или последнее значение, полученное из объекта последовательности | yii\db\Schema |
| $queryBuilder | yii\db\QueryBuilder | Построитель запросов для этого подключения. | yii\db\Schema |
| $schemaNames | string[] | Все имена схем в базе данных, за исключением системных схем. | yii\db\Schema |
| $tableNames | string[] | Все имена таблиц в базе данных. | yii\db\Schema |
| $tableSchemas | yii\db\TableSchema[] | Метаданные для всех таблиц в базе данных. | yii\db\Schema |
| $transactionIsolationLevel | string | Уровень изоляции транзакции для использования в этой транзакции. | yii\db\Schema |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в значение null. | yii\base\Object |
| canGetProperty() | Возвращает значение, указывающее, можно ли читать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное имя этого класса. | yii\base\Object |
| convertException() | Преобразует исключение DB в более конкретное, если возможно. | yii\db\Schema |
| createColumnSchemaBuilder() | Создает экземпляр конструктора схемы столбца, задавая тип и точность значения. | yii\db\Schema |
| createQueryBuilder() | Создает конструктор запросов для базы данных. | yii\db\Schema |
| createSavepoint() | Создает новую точку сохранения. | yii\db\Schema |
| findUniqueIndexes() | Возвращает все уникальные индексы для указанной таблицы. | yii\db\Schema |
| getLastInsertID() | Возвращает идентификатор последней вставленной строки или значения последовательности. | yii\db\Schema |
| getPdoType() | Определяет тип PDO для данного значения данных PHP. | yii\db\Schema |
| getQueryBuilder() | yii\db\Schema | |
| getRawTableName() | Возвращает фактическое имя заданного имени таблицы. | yii\db\Schema |
| getSchemaNames() | Возвращает все имена схем в базе данных, за исключением системных схем. | yii\db\Schema |
| getTableNames() | Возвращает все имена таблиц в базе данных. | yii\db\Schema |
| getTableSchema() | Получает метаданные для указанной таблицы. | yii\db\Schema |
| getTableSchemas() | Возвращает метаданные для всех таблиц в базе данных. | yii\db\Schema |
| hasMethod() | Возвращает значение, указывающее, определен ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\base\Object |
| insert() | Выполняет команду INSERT, возвращая значения первичных ключей. | yii\db\Schema |
| isReadQuery() | Возвращает значение, указывающее, предназначен ли SQL-запрос для чтения. | yii\db\Schema |
| quoteColumnName() | Приводит имя столбца в кавычки для использования в запросе. | yii\db\Schema |
| quoteSimpleColumnName() | Приводит простое имя столбца в кавычки для использования в запросе. | yii\db\Schema |
| quoteSimpleTableName() | Приводит простое имя таблицы в кавычки для использования в запросе. | yii\db\Schema |
| quoteTableName() | Приводит имя таблицы в кавычки для использования в запросе. | yii\db\Schema |
| quoteValue() | Приводит строковое значение в кавычки для использования в запросе. | yii\db\Schema |
| refresh() | Обновляет схему. | yii\db\Schema |
| refreshTableSchema() | Обновляет схему конкретной таблицы. | yii\db\Schema |
| releaseSavepoint() | Освобождает существующую точку сохранения. | yii\db\Schema |
| rollBackSavepoint() | Возвращается к ранее созданной точке сохранения. | yii\db\Schema |
| setTransactionIsolationLevel() | Устанавливает уровень изоляции текущей транзакции. | yii\db\Schema |
| supportsSavepoint() | yii\db\Schema |
Методы protected
| Метод | Описание | Определено в |
|---|---|---|
| createColumnSchema() | yii\db\Schema | |
| findSchemaNames() | Возвращает все имена схем в базе данных, включая значение по умолчанию, но не системные схемы. | yii\db\Schema |
| findTableNames() | Возвращает все имена таблиц в базе данных. | yii\db\Schema |
| getCacheKey() | Возвращает ключ кеша для заданного имени таблицы. | yii\db\Schema |
| getCacheTag() | Возвращает имя тега кеша. | yii\db\Schema |
| getColumnPhpType() | Извлекает тип PHP из абстрактного типа DB. | yii\db\Schema |
| loadTableSchema() | Загружает метаданные для указанной таблицы. | yii\db\Schema |
Константы
| Постоянная | Значение | Описание | Определено в |
|---|---|---|---|
| TYPE_BIGINT | 'bigint' | yii\db\Schema | |
| TYPE_BIGPK | 'bigpk' | yii\db\Schema | |
| TYPE_BINARY | 'binary' | yii\db\Schema | |
| TYPE_BOOLEAN | 'boolean' | yii\db\Schema | |
| TYPE_CHAR | 'char' | yii\db\Schema | |
| TYPE_DATE | 'date' | yii\db\Schema | |
| TYPE_DATETIME | 'datetime' | yii\db\Schema | |
| TYPE_DECIMAL | 'decimal' | yii\db\Schema | |
| TYPE_DOUBLE | 'double' | yii\db\Schema | |
| TYPE_FLOAT | 'float' | yii\db\Schema | |
| TYPE_INTEGER | 'integer' | yii\db\Schema | |
| TYPE_MONEY | 'money' | yii\db\Schema | |
| TYPE_PK | 'pk' | yii\db\Schema | |
| TYPE_SMALLINT | 'smallint' | yii\db\Schema | |
| TYPE_STRING | 'string' | yii\db\Schema | |
| TYPE_TEXT | 'text' | yii\db\Schema | |
| TYPE_TIME | 'time' | yii\db\Schema | |
| TYPE_TIMESTAMP | 'timestamp' | yii\db\Schema | |
| TYPE_UBIGPK | 'ubigpk' | yii\db\Schema | |
| TYPE_UPK | 'upk' | yii\db\Schema |
Подробное описание свойств
$columnSchemaClass общедоступное свойство (доступно начиная с версии 2.0.11)
Класс схемы столбца
public string $columnSchemaClass = 'yii\db\ColumnSchema'
$db общедоступное свойство
Подключение к базе данных
public yii\db\Connection $db = null
$defaultSchema общедоступное свойство
Имя схемы по умолчанию, используемое для текущей сессии.
public string $defaultSchema = null
$exceptionMap общедоступное свойство
Отображение ошибок БД и соответствующих исключений. Если левая часть найдена в сообщении об ошибке БД, используется класс исключения из правой части.
public array $exceptionMap = ['SQLSTATE[23' => 'yii\db\IntegrityException']
$lastInsertID общедоступное только для чтения свойство
Идентификатор строки последней вставленной строки или последнее значение, полученное из объекта последовательности
public string getLastInsertID ( $sequenceName = '' )
$queryBuilder общедоступное только для чтения свойство
Построитель запросов для этого подключения.
public yii\db\QueryBuilder getQueryBuilder ( )
$schemaNames общедоступное только для чтения свойство
Все имена схем в базе данных, за исключением системных схем.
public string[] getSchemaNames ( $refresh = false )
$tableNames общедоступное только для чтения свойство
Все имена таблиц в базе данных.
public string[] getTableNames ( $schema = '', $refresh = false )
$tableSchemas общедоступное только для чтения свойство
Метаданные для всех таблиц в базе данных. Каждый элемент массива — экземпляр yii\db\TableSchema или его производного класса.
public yii\db\TableSchema[] getTableSchemas ( $schema = '', $refresh = false )
$transactionIsolationLevel общедоступное свойство только для записи
Уровень изоляции транзакции для использования в этой транзакции. Может быть одним из значений yii\db\Transaction::READ_UNCOMMITTED, yii\db\Transaction::READ_COMMITTED, yii\db\Transaction::REPEATABLE_READ и yii\db\Transaction::SERIALIZABLE, а также строкой, содержащей синтаксис, специфичный для СУБД, который будет использоваться после SET TRANSACTION ISOLATION LEVEL.
public void setTransactionIsolationLevel ( $level )
Подробное описание методов
convertException() public method
Преобразует исключение DB в более конкретное, если это возможно.
| public yii\db\Exception convertException ( Exception $e, $rawSql ) | ||
|---|---|---|
| $e | Exception | |
| $rawSql | string |
SQL, вызвавший исключение |
createColumnSchema() protected method
| protected yii\db\ColumnSchema createColumnSchema ( ) | ||
|---|---|---|
| throws | yii\base\InvalidConfigException | |
createColumnSchemaBuilder() public method (available since version 2.0.6)
Создает экземпляр билдера схемы столбца, задавая тип и точность значения.
Этот метод может быть переопределен дочерними классами для создания билдера схемы столбца, специфичного для СУБД.
| public yii\db\ColumnSchemaBuilder createColumnSchemaBuilder ( $type, $length = null ) | ||
|---|---|---|
| $type | string |
Тип столбца. См. yii\db\ColumnSchemaBuilder::$type. |
| $length | integer|string|array |
Длина или точность столбца. См. yii\db\ColumnSchemaBuilder::$length. |
| return | yii\db\ColumnSchemaBuilder |
Экземпляр билдера схемы столбца |
createQueryBuilder() public method
Создает билдер запросов для базы данных.
Этот метод может быть переопределен дочерними классами для создания билдера запросов, специфичного для СУБД.
| public yii\db\QueryBuilder createQueryBuilder ( ) | ||
|---|---|---|
| return | yii\db\QueryBuilder |
Экземпляр билдера запросов |
createSavepoint() public method
Создает новую точку сохранения.
| public void createSavepoint ( $name ) | ||
|---|---|---|
| $name | string |
Имя точки сохранения |
findSchemaNames() protected method (available since version 2.0.4)
Возвращает все имена схем в базе данных, включая стандартную, но не системные схемы.
Этот метод следует переопределить в дочерних классах для поддержки этой функции, потому что по умолчанию он просто выбрасывает исключение.
| protected array findSchemaNames ( ) | ||
|---|---|---|
| return | array |
Все имена схем в базе данных, за исключением системных схем |
| throws | yii\base\NotSupportedException |
если этот метод вызван |
findTableNames() protected method
Возвращает все имена таблиц в базе данных.
Этот метод следует переопределить в дочерних классах для поддержки этой функции, потому что по умолчанию он просто выбрасывает исключение.
| protected array findTableNames ( $schema = '' ) | ||
|---|---|---|
| $schema | string |
Схема таблиц. По умолчанию пустая строка, что означает текущую или стандартную схему. |
| return | array |
Все имена таблиц в базе данных. Имена не имеют префикса имени схемы. |
| throws | yii\base\NotSupportedException |
если этот метод вызван |
findUniqueIndexes() public method
Возвращает все уникальные индексы для данной таблицы.
Каждый элемент массива имеет следующий структуру:
[ 'IndexName1' => ['col1' [, ...]], 'IndexName2' => ['col2' [, ...]], ]
Этот метод следует переопределить в дочерних классах для поддержки этой функции, потому что по умолчанию он просто выбрасывает исключение
| public array findUniqueIndexes ( $table ) | ||
|---|---|---|
| $table | yii\db\TableSchema |
Метаданные таблицы |
| return | array |
Все уникальные индексы для данной таблицы. |
| throws | yii\base\NotSupportedException |
если этот метод вызван |
getCacheKey() protected method
Возвращает ключ кэша для указанного имени таблицы.
| protected mixed getCacheKey ( $name ) | ||
|---|---|---|
| $name | string |
Имя таблицы |
| return | mixed |
Ключ кэша |
getCacheTag() protected method
Возвращает имя тега кэша.
Это позволяет refresh() аннулировать все кэшированные схемы таблиц.
| protected string getCacheTag ( ) | ||
|---|---|---|
| return | string |
Имя тега кэша |
getColumnPhpType() protected method
Извлекает тип PHP из абстрактного типа DB.
| protected string getColumnPhpType ( $column ) | ||
|---|---|---|
| $column | yii\db\ColumnSchema |
Информация о схеме столбца |
| return | string |
Имя типа PHP |
getLastInsertID() public method
Возвращает ID последней вставленной строки или последовательности значений.
См. также http://www.php.net/manual/en/function.PDO-lastInsertId.php.
| public string getLastInsertID ( $sequenceName = '' ) | ||
|---|---|---|
| $sequenceName | string |
Имя объекта последовательности (необходимо для некоторых СУБД) |
| return | string |
Идентификатор строки последней вставленной строки или последнее значение, полученное из объекта последовательности |
| throws | yii\base\InvalidCallException |
если соединение с БД не активно |
getPdoType() public method
Определяет тип PDO для данного значения данных PHP.
См. также http://www.php.net/manual/en/pdo.constants.php.
| public integer getPdoType ( $data ) | ||
|---|---|---|
| $data | mixed |
Данные, для которых нужно определить тип PDO |
| return | integer |
Тип PDO |
getQueryBuilder() public method
| public yii\db\QueryBuilder getQueryBuilder ( ) | ||
|---|---|---|
| return | yii\db\QueryBuilder |
Билдер запросов для этого подключения. |
getRawTableName() public method
Возвращает фактическое имя данной таблицы.
Этот метод удалит фигурные скобки из заданного имени таблицы и заменит символ процента '%' на yii\db\Connection::$tablePrefix.
| public string getRawTableName ( $name ) | ||
|---|---|---|
| $name | string |
Имя таблицы, подлежащее преобразованию |
| return | string |
Фактическое имя заданной таблицы |
getSchemaNames() public method (available since version 2.0.4)
Возвращает все имена схем базы данных, кроме системных.
| public string[] getSchemaNames ( $refresh = false ) | ||
|---|---|---|
| $refresh | boolean |
Указывает, нужно ли получить самые последние доступные имена схем. Если false, возвращаются имена схем, полученные ранее (если доступны). |
| return | string[] |
Все имена схем базы данных, кроме системных. |
getTableNames() public method
Возвращает все имена таблиц в базе данных.
| public string[] getTableNames ( $schema = '', $refresh = false ) | ||
|---|---|---|
| $schema | string |
Схема таблиц. По умолчанию пустая строка, что означает текущую или схему по умолчанию. Если не пусто, возвращаемые имена таблиц будут иметь префикс имени схемы. |
| $refresh | boolean |
Указывает, нужно ли получить самые последние доступные имена таблиц. Если false, возвращаются имена таблиц, полученные ранее (если доступны). |
| return | string[] |
Все имена таблиц в базе данных. |
getTableSchema() public method
Получает метаданные для указанной таблицы.
| public null|yii\db\TableSchema getTableSchema ( $name, $refresh = false ) | ||
|---|---|---|
| $name | string |
Имя таблицы. Имя таблицы может содержать имя схемы, если таковое имеется. Не используйте кавычки для имени таблицы. |
| $refresh | boolean |
Указывает, нужно ли перезагрузить схему таблицы, даже если она найдена в кэше. |
| return | null|yii\db\TableSchema |
Метаданные таблицы. Нуль, если указанная таблица не существует. |
getTableSchemas() public method
Возвращает метаданные для всех таблиц в базе данных.
| public yii\db\TableSchema[] getTableSchemas ( $schema = '', $refresh = false ) | ||
|---|---|---|
| $schema | string |
Схема таблиц. По умолчанию пустая строка, что означает текущую или схему по умолчанию. |
| $refresh | boolean |
Указывает, нужно ли получить самые последние доступные схемы таблиц. Если false, могут быть возвращены данные из кэша, если они доступны. |
| return | yii\db\TableSchema[] |
Метаданные для всех таблиц в базе данных. Каждый элемент массива — экземпляр yii\db\TableSchema или его производного класса. |
insert() public method (available since version 2.0.4)
Выполняет команду INSERT, возвращая значения первичных ключей.
| public array|false insert ( $table, $columns ) | ||
|---|---|---|
| $table | string |
Таблица, в которую будут добавлены новые строки. |
| $columns | array |
Данные столбцов (имя => значение) для вставки в таблицу. |
| return | array|false |
Значения первичных ключей или false, если команда завершилась неудачно |
isReadQuery() public method
Возвращает значение, указывающее, предназначен ли SQL-запрос для чтения.
| public boolean isReadQuery ( $sql ) | ||
|---|---|---|
| $sql | string |
SQL-запрос |
| return | boolean |
Является ли SQL-запрос запросом на чтение. |
loadTableSchema() protected abstract method
Загружает метаданные для указанной таблицы.
| protected abstract null|yii\db\TableSchema loadTableSchema ( $name ) | ||
|---|---|---|
| $name | string |
Имя таблицы |
| return | null|yii\db\TableSchema |
Зависимые от СУБД метаданные таблицы, null, если таблица не существует. |
quoteColumnName() public method
Приводит имя столбца к виду, пригодного для использования в запросе.
Если имя столбца содержит префикс, префикс также будет должным образом приведен к виду, пригодного для запроса. Если имя столбца уже находится в кавычках или содержит '(', '[[' или '{{', этот метод ничего не сделает.
См. также quoteSimpleColumnName().
| public string quoteColumnName ( $name ) | ||
|---|---|---|
| $name | string |
Имя столбца |
| return | string |
Правильно приведенное к виду имя столбца |
quoteSimpleColumnName() public method
Приводит простое имя столбца к виду, пригодного для использования в запросе.
Простое имя столбца должно содержать только имя столбца без префикса. Если имя столбца уже находится в кавычках или является символом звёздочка '*', этот метод ничего не сделает.
| public string quoteSimpleColumnName ( $name ) | ||
|---|---|---|
| $name | string |
Имя столбца |
| return | string |
Правильно приведенное к виду имя столбца |
quoteSimpleTableName() public method
Приводит простое имя таблицы к виду, пригодного для использования в запросе.
Простое имя таблицы должно содержать только имя таблицы без префикса схемы. Если имя таблицы уже находится в кавычках, этот метод ничего не сделает.
| public string quoteSimpleTableName ( $name ) | ||
|---|---|---|
| $name | string |
Имя таблицы |
| return | string |
Правильно приведенное к виду имя таблицы |
quoteTableName() public method
Приводит имя таблицы к виду, пригодного для использования в запросе.
Если имя таблицы содержит префикс схемы, префикс также будет должным образом приведен к виду, пригодного для запроса. Если имя таблицы уже находится в кавычках или содержит '(' или '{{', этот метод ничего не сделает.
См. также quoteSimpleTableName().
| public string quoteTableName ( $name ) | ||
|---|---|---|
| $name | string |
Имя таблицы |
| return | string |
Правильно приведенное к виду имя таблицы |
quoteValue() public method
Приводит строковое значение к виду, пригодного для использования в запросе.
Обратите внимание, что если параметр не является строкой, он будет возвращен без изменений.
См. также http://www.php.net/manual/en/function.PDO-quote.php.
| public string quoteValue ( $str ) | ||
|---|---|---|
| $str | string |
Строка для приведения к виду, пригодного для запроса |
| return | string |
Правильно приведенная к виду строка |
refresh() public method
Обновляет схему.
Этот метод очищает все кэшированные схемы таблиц, чтобы их можно было пересоздать позже для отражения изменений в структуре базы данных.
| public void refresh ( ) |
|---|
refreshTableSchema() public method (available since version 2.0.6)
Обновляет схему конкретной таблицы.
Этот метод очищает кэш схемы таблиц, чтобы его можно было повторно создать позже для отражения изменений схемы базы данных.
| public void refreshTableSchema ( $name ) | ||
|---|---|---|
| $name | string |
Имя таблицы. |
releaseSavepoint() public method
Освобождает существующую точку сохранения.
| public void releaseSavepoint ( $name ) | ||
|---|---|---|
| $name | string |
Имя точки сохранения |
rollBackSavepoint() public method
Откатывает транзакцию до ранее созданной точки сохранения.
| public void rollBackSavepoint ( $name ) | ||
|---|---|---|
| $name | string |
Имя точки сохранения |
setTransactionIsolationLevel() public method
Устанавливает уровень изоляции текущей транзакции.
См. также http://en.wikipedia.org/wiki/Isolation_(database_systems)#Isolation_levels.
| public void setTransactionIsolationLevel ( $level ) | ||
|---|---|---|
| $level | string |
Уровень изоляции транзакции для этой транзакции. Может быть одним из значений yii\db\Transaction::READ_UNCOMMITTED, yii\db\Transaction::READ_COMMITTED, yii\db\Transaction::REPEATABLE_READ и yii\db\Transaction::SERIALIZABLE, а также строкой, содержащей синтаксис, специфичный для СУБД, который необходимо использовать после |
supportsSavepoint() public method
| public boolean supportsSavepoint ( ) | ||
|---|---|---|
| return | boolean |
Поддерживает ли эта СУБД точки сохранения. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-db-schema.html