Spec-Zone.ru › CakePHP 4.3

Класс SqliteSchemaDialect

Функции управления/отражения структуры схемы для Sqlite

Пространство имён: Cake\Database\Schema

Краткое описание свойств

  • $_constraintsIdMap protected
    array<string, mixed>

    Массив, содержащий имена ограничений внешних ключей. Необходим для обработки составных внешних ключей.

  • $_driver protected
    Cake\Database\DriverInterface

    Используемый экземпляр драйвера.

  • $_hasSequences protected
    bool

    Признак наличия таблиц с последовательностями в этом подключении к SQLite.

Краткое описание методов

  • __construct() public

    Конструктор

  • _applyTypeSpecificColumnConversion() protected

    Попытка преобразования определения SQL-столбца в абстрактное определение типа с использованием соответствующего типа базы данных.

  • _convertColumn() protected

    Преобразование определения столбца в абстрактные типы.

  • _convertConstraintColumns() protected

    Преобразование ссылок на ограничения внешних ключей в корректный строковый список.

  • _convertOnClause() protected

    Преобразование строковых ON-определений в абстрактные.

  • _defaultValue() protected

    Обработка значения по умолчанию.

  • _foreignOnClause() protected

    Генерация ON-определения для внешнего ключа.

  • _getTypeSpecificColumnSql() protected

    Попытка генерации SQL-фрагмента для одного столбца в таблице с использованием соответствующего типа базы данных.

  • addConstraintSql() public

    Генерация SQL-запросов для добавления ограничений внешних ключей в таблицу.

  • columnSql() public

    Генерация SQL-фрагмента для одного столбца в таблице.

  • constraintSql() public

    Генерация SQL-фрагментов для определения ограничений таблицы.

  • convertColumnDescription() public

    Преобразование результатов описания полей в абстрактные поля схемы.

  • convertForeignKeyDescription() public

    Преобразование описания внешнего ключа в ограничения объекта Table.

  • convertIndexDescription() public

    Преобразование результатов описания индексов в абстрактные индексы или ограничения схемы.

  • convertOptionsDescription() public

    Преобразование данных опций в опции таблицы.

  • createTableSql() public

    Генерация SQL для создания таблицы.

  • describeColumnSql() public

    Генерация SQL для описания столбца таблицы.

  • describeForeignKeySql() public

    Генерация SQL для описания внешних ключей в таблице.

  • describeIndexSql() public

    Генерация SQL для описания индексов в таблице.

  • describeOptionsSql() public

    Генерация SQL для описания опций таблицы.

  • dropConstraintSql() public

    Генерация SQL-запросов для удаления ограничений внешних ключей из таблицы.

  • dropTableSql() public

    Генерация SQL для удаления таблицы.

  • hasSequences() public

    Возвращает признак наличия таблиц с последовательностями в этом подключении к SQLite.

  • indexSql() public

    Генерация SQL-фрагмента для одного индекса в таблице.

  • listTablesSql() public

    Генерация SQL для вывода списка таблиц и представлений.

  • listTablesWithoutViewsSql() public

    Генерация SQL для вывода списка таблиц, исключая представления.

  • truncateTableSql() public

    Генерация SQL для обнуления таблицы.

Подробное описание методов

__construct() public

__construct(Cake\Database\DriverInterface $driver)

Конструктор

Этот конструктор подключит драйвер, поэтому методы, такие как columnSql() и другие, будут вызывать ошибку, если драйвер не подключён.

Параметры

Cake\Database\DriverInterface $driver

Используемый драйвер.

_applyTypeSpecificColumnConversion() protected

_applyTypeSpecificColumnConversion(string $columnType, array $definition): array|null

Попытка использования соответствующего типа базы данных для преобразования определения SQL-столбца в абстрактное определение типа.

Параметры

string $columnType

Тип столбца.

array $definition

Определение столбца.

Возвращает

array|null

_convertColumn() protected

_convertColumn(string $column): array<string, mixed>

Преобразование определения столбца в абстрактные типы.

Возвращаемый тип будет типом, который может обработать Cake\Database\TypeFactory.

Параметры

string $column

Тип столбца + длина

Возвращает

array<string, mixed>

Выбрасывает

Cake\Database\Exception\DatabaseException
при невозможности разбора типа столбца

_convertConstraintColumns() protected

_convertConstraintColumns(array<string>|string $references): string

Преобразование ссылок на внешние ключи ограничений в допустимый строковый список.

Параметры

array<string>|string $references

Ссылаемые столбцы оператора ограничения внешнего ключа

Возвращает

string

_convertOnClause() protected

_convertOnClause(string $clause): string

Преобразование строковых операторов on в абстрактные.

Параметры

string $clause

Оператор on для преобразования.

Возвращает

string

_defaultValue() protected

_defaultValue(string|int|null $default): string|int|null

Обработка значения по умолчанию.

Sqlite включает кавычки и значения NULL в значениях по умолчанию. Нам нужно их удалить.

Параметры

string|int|null $default

Значение по умолчанию.

Возвращает

string|int|null

_foreignOnClause() protected

_foreignOnClause(string $on): string

Генерация оператора ON для внешнего ключа.

Параметры

string $on

Оператор on

Возвращает

string

_getTypeSpecificColumnSql() protected

_getTypeSpecificColumnSql(string $columnType, Cake\Database\Schema\TableSchemaInterface $schema, string $column): string|null

Попытка использования соответствующего типа базы данных для генерации SQL-фрагмента для одного столбца в таблице.

Параметры

string $columnType

Тип столбца.

Cake\Database\Schema\TableSchemaInterface $schema

Экземпляр схемы таблицы, в которой находится столбец.

string $column

Имя столбца.

Возвращает

string|null

addConstraintSql() public

addConstraintSql(Cake\Database\Schema\TableSchema $schema): array

Генерация SQL-запросов, необходимых для добавления ограничений внешних ключей в таблицу

SQLite не может правильно обработать добавление ограничения к существующей таблице. Этот метод ничего не делает (no-op)

Параметры

Cake\Database\Schema\TableSchema $schema

Экземпляр таблицы, к которому относятся ограничения внешних ключей.

Возвращает

array

columnSql() public

columnSql(Cake\Database\Schema\TableSchema $schema, string $name): string

Генерация SQL-фрагмента для одного столбца в таблице.

Параметры

Cake\Database\Schema\TableSchema $schema

Экземпляр таблицы, в которой находится столбец.

string $name

Имя столбца.

Возвращает

string

Выбрасывает

Cake\Database\Exception\DatabaseException
если тип столбца неизвестен

constraintSql() public

constraintSql(Cake\Database\Schema\TableSchema $schema, string $name): string

Генерация SQL-фрагментов для определения ограничений таблицы.

Обратите внимание, что целочисленные первичные ключи возвращают ''. Это сделано намеренно, так как Sqlite требует, чтобы целочисленные первичные ключи были определены в определении столбца.

Параметры

Cake\Database\Schema\TableSchema $schema

Экземпляр таблицы, в которой находится столбец.

string $name

Имя столбца.

Возвращает

string

convertColumnDescription() public

convertColumnDescription(Cake\Database\Schema\TableSchema $schema, array $row): void

Преобразование результатов описания полей в абстрактные схемы полей.

Параметры

Cake\Database\Schema\TableSchema $schema
array $row

Возвращает

void

convertForeignKeyDescription() public

convertForeignKeyDescription(Cake\Database\Schema\TableSchema $schema, array $row): void

Преобразование описания внешнего ключа в ограничения в объекте Table.

Параметры

Cake\Database\Schema\TableSchema $schema
array $row

Возвращает

void

convertIndexDescription() public

convertIndexDescription(Cake\Database\Schema\TableSchema $schema, array $row): void

Преобразование результатов описания индекса в абстрактные схемы индексов или ограничений.

Поскольку SQLite не имеет способа получить метаданные обо всех индексах сразу, здесь выполняются дополнительные запросы. Имена ограничений SQLite не стабильны, и имена ограничений не будут совпадать с теми, которые использовались для создания таблицы. Это ограничение в возможностях метаданных Sqlite.

Параметры

Cake\Database\Schema\TableSchema $schema

Объект таблицы, к которому нужно добавить индекс или ограничение.

array $row

Данные строки из describeIndexSql.

Возвращает

void

convertOptionsDescription() public

convertOptionsDescription(Cake\Database\Schema\TableSchema $schema, array $row): void

Преобразование данных опций в опции таблицы.

Параметры

Cake\Database\Schema\TableSchema $schema

Экземпляр таблицы.

array $row

Строка данных.

Возвращает

void

createTableSql() public

createTableSql(Cake\Database\Schema\TableSchema $schema, array<string> $columns, array<string> $constraints, array<string> $indexes): array<string>

Генерация SQL для создания таблицы.

Параметры

Cake\Database\Schema\TableSchema $schema
array<string> $columns
array<string> $constraints
array<string> $indexes

Возвращает

array<string>

describeColumnSql() public

describeColumnSql(string $tableName, array<string, mixed> $config): array

Генерация SQL для описания таблицы.

Параметры

string $tableName
array<string, mixed> $config

Возвращает

array

describeForeignKeySql() public

describeForeignKeySql(string $tableName, array<string, mixed> $config): array

Генерация SQL для описания внешних ключей в таблице.

Параметры

string $tableName
array<string, mixed> $config

Возвращает

array

describeIndexSql() public

describeIndexSql(string $tableName, array<string, mixed> $config): array

Генерировать SQL для описания индексов в таблице.

Параметры

string $tableName
array<string, mixed> $config

Возвращает

array

describeOptionsSql() public

describeOptionsSql(string $tableName, array<string, mixed> $config): array

Генерировать SQL для описания параметров таблицы

Параметры

string $tableName

Имя таблицы.

array<string, mixed> $config

Конфигурация подключения.

Возвращает

array

dropConstraintSql() public

dropConstraintSql(Cake\Database\Schema\TableSchema $schema): array

Генерировать SQL запросы для удаления ограничений внешнего ключа из таблицы

SQLite не может правильно обработать удаление ограничения для существующей таблицы. Этот метод не делает ничего.

Параметры

Cake\Database\Schema\TableSchema $schema

Экземпляр таблицы, к которому относятся ограничения внешнего ключа.

Возвращает

array

dropTableSql() public

dropTableSql(Cake\Database\Schema\TableSchema $schema): array

Генерировать SQL для удаления таблицы.

Параметры

Cake\Database\Schema\TableSchema $schema

Экземпляр схемы

Возвращает

array

hasSequences() public

hasSequences(): bool

Возвращает, есть ли в этом подключении к SQLite какие-либо таблицы, содержащие последовательности

Возвращает

bool

indexSql() public

indexSql(Cake\Database\Schema\TableSchema $schema, string $name): string

Генерировать SQL фрагмент для одного индекса в таблице.

Параметры

Cake\Database\Schema\TableSchema $schema
string $name

Возвращает

string

listTablesSql() public

listTablesSql(array<string, mixed> $config): array

Генерировать SQL для вывода списка таблиц и представлений.

Параметры

array<string, mixed> $config

Конфигурация подключения, используемая для получения таблиц.

Возвращает

array

listTablesWithoutViewsSql() public

listTablesWithoutViewsSql(array<string, mixed> $config): array<mixed>

Генерировать SQL для вывода списка таблиц, исключая все представления.

Параметры

array<string, mixed> $config

Конфигурация подключения, используемая для получения таблиц.

Возвращает

array<mixed>

truncateTableSql() public

truncateTableSql(Cake\Database\Schema\TableSchema $schema): array

Генерировать SQL для обнуления таблицы.

Параметры

Cake\Database\Schema\TableSchema $schema

Возвращает

array

Детали свойств

$_constraintsIdMap protected

Массив, содержащий имена ограничений внешнего ключа. Необходим для обработки составных внешних ключей.

Тип

array<string, mixed>

$_driver protected

Используемый экземпляр драйвера.

Тип

Cake\Database\DriverInterface

$_hasSequences protected

Есть ли в этом подключении к SQLite какие-либо таблицы, содержащие последовательности.

Тип

bool

© 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.3/class-Cake.Database.Schema.SqliteSchemaDialect.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API