类 SchemaDialect
Schema 实现的基类。
此类包含各种 SQL 方言共有的方法。
属性汇总
-
$_driver protected
Cake\Database\Driver
正在使用的驱动程序实例。
方法汇总
-
__construct() public
构造函数
-
_applyTypeSpecificColumnConversion() protected
尝试使用匹配的数据库类型将 SQL 列定义转换为抽象类型定义。
-
_convertConstraintColumns() protected
将外键约束引用转换为有效的字符串化列表
-
_convertOnClause() protected
将字符串 on 子句转换为抽象子句。
-
_foreignOnClause() protected
为外键生成 ON 子句。
-
_getTypeSpecificColumnSql() protected
尝试使用匹配的数据库类型为表中的单个列生成 SQL 片段。
-
addConstraintSql() abstract public
生成将外键约束添加到表的 SQL 查询
-
columnSql() abstract public
为表中的单个列生成 SQL 片段。
-
constraintSql() abstract public
生成用于定义表约束的 SQL 片段。
-
convertColumnDescription() abstract public
将字段描述结果转换为抽象模式字段。
-
convertForeignKeyDescription() abstract public
将外键描述转换为 Table 对象上的约束。
-
convertIndexDescription() abstract public
将索引描述结果转换为抽象模式索引或约束。
-
convertOptionsDescription() public
将选项数据转换为表选项。
-
createTableSql() abstract public
生成创建表的 SQL。
-
describeColumnSql() abstract public
生成描述表的 SQL。
-
describeForeignKeySql() abstract public
生成描述表中外键的 SQL。
-
describeIndexSql() abstract public
生成描述表中索引的 SQL。
-
describeOptionsSql() public
生成描述表选项的 SQL
-
dropConstraintSql() abstract public
生成从表中删除外键约束所需的 SQL 查询
-
dropTableSql() public
生成删除表的 SQL。
-
indexSql() abstract public
为表中的单个索引生成 SQL 片段。
-
listTablesSql() abstract public
生成列出表的 SQL。
-
listTablesWithoutViewsSql() public @method
生成列出表的 SQL,排除所有视图。
-
truncateTableSql() abstract public
生成截断表的 SQL。
方法详情
__construct() ¶ public
__construct(Cake\Database\Driver $driver)
构造函数
此构造函数将连接驱动程序,以便诸如 columnSql() 之类的方法在驱动程序未连接时会失败。
参数
-
Cake\Database\Driver
$driver 要使用的驱动程序。
_applyTypeSpecificColumnConversion() ¶ protected
_applyTypeSpecificColumnConversion(string $columnType, array $definition): array|null
尝试使用匹配的数据库类型将 SQL 列定义转换为抽象类型定义。
参数
-
string
$columnType 列类型。
-
array
$definition 列定义。
返回值
array|null
_convertConstraintColumns() ¶ protected
_convertConstraintColumns(list<string>|string $references): string
将外键约束引用转换为有效的字符串化列表
参数
-
list<string>|string
$references 外键约束语句的引用列
返回值
string
_convertOnClause() ¶ protected
_convertOnClause(string $clause): string
将字符串 on 子句转换为抽象子句。
参数
-
string
$clause 要转换的 on 子句。
返回值
string
_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() ¶ abstract public
addConstraintSql(Cake\Database\Schema\TableSchema $schema): array
生成将外键约束添加到表的 SQL 查询
参数
-
Cake\Database\Schema\TableSchema
$schema 外键约束所在的表实例。
返回值
array
columnSql() ¶ abstract public
columnSql(Cake\Database\Schema\TableSchema $schema, string $name): string
为表中的单个列生成 SQL 片段。
参数
-
Cake\Database\Schema\TableSchema
$schema 列所在的表实例。
-
string
$name 列的名称。
返回值
string
constraintSql() ¶ abstract public
constraintSql(Cake\Database\Schema\TableSchema $schema, string $name): string
生成用于定义表约束的 SQL 片段。
参数
-
Cake\Database\Schema\TableSchema
$schema 列所在的表实例。
-
string
$name 列的名称。
返回值
string
convertColumnDescription() ¶ abstract public
convertColumnDescription(Cake\Database\Schema\TableSchema $schema, array $row): void
将字段描述结果转换为抽象模式字段。
参数
-
Cake\Database\Schema\TableSchema
$schema 要追加字段的表对象。
-
array
$row 来自
describeColumnSql
的行数据。
返回值
void
convertForeignKeyDescription() ¶ abstract public
convertForeignKeyDescription(Cake\Database\Schema\TableSchema $schema, array $row): void
将外键描述转换为 Table 对象上的约束。
参数
-
Cake\Database\Schema\TableSchema
$schema 要追加约束的表对象。
-
array
$row 来自
describeForeignKeySql
的行数据。
返回值
void
convertIndexDescription() ¶ abstract public
convertIndexDescription(Cake\Database\Schema\TableSchema $schema, array $row): void
将索引描述结果转换为抽象模式索引或约束。
参数
-
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() ¶ 抽象 公共
createTableSql(Cake\Database\Schema\TableSchema $schema, list<string> $columns, list<string> $constraints, list<string> $indexes): list<string>
生成创建表的 SQL。
参数
-
Cake\Database\Schema\TableSchema
$schema 表实例。
-
list<string>
$columns 要添加到表中的列。
-
list<string>
$constraints 表的约束条件。
-
list<string>
$indexes 表的索引。
返回值
list<string>
describeColumnSql() ¶ 抽象 公共
describeColumnSql(string $tableName, array<string, mixed> $config): array
生成描述表的 SQL。
参数
-
string
$tableName 要获取信息的表名。
-
array<string, mixed>
$config 连接配置。
返回值
array
describeForeignKeySql() ¶ 抽象 公共
describeForeignKeySql(string $tableName, array<string, mixed> $config): array
生成描述表中外键的 SQL。
参数
-
string
$tableName 要获取信息的表名。
-
array<string, mixed>
$config 连接配置。
返回值
array
describeIndexSql() ¶ 抽象 公共
describeIndexSql(string $tableName, array<string, mixed> $config): array
生成描述表中索引的 SQL。
参数
-
string
$tableName 要获取信息的表名。
-
array<string, mixed>
$config 连接配置。
返回值
array
describeOptionsSql() ¶ 公共
describeOptionsSql(string $tableName, array<string, mixed> $config): array
生成描述表选项的 SQL
参数
-
string
$tableName 表名。
-
array<string, mixed>
$config 连接配置。
返回值
array
dropConstraintSql() ¶ 抽象 公共
dropConstraintSql(Cake\Database\Schema\TableSchema $schema): array
生成从表中删除外键约束所需的 SQL 查询
参数
-
Cake\Database\Schema\TableSchema
$schema 外键约束所在的表实例。
返回值
array
dropTableSql() ¶ 公共
dropTableSql(Cake\Database\Schema\TableSchema $schema): array
生成删除表的 SQL。
参数
-
Cake\Database\Schema\TableSchema
$schema 模式实例
返回值
array
indexSql() ¶ 抽象 公共
indexSql(Cake\Database\Schema\TableSchema $schema, string $name): string
为表中的单个索引生成 SQL 片段。
参数
-
Cake\Database\Schema\TableSchema
$schema 包含该列的表对象。
-
string
$name 列的名称。
返回值
string
listTablesSql() ¶ 抽象 公共
listTablesSql(array<string, mixed> $config): array
生成列出表的 SQL。
参数
-
array<string, mixed>
$config 用于从其中获取表的连接配置。
返回值
array
listTablesWithoutViewsSql() ¶ 公共 注释 @method
listTablesWithoutViewsSql(array $config): array<mixed>
生成列出表的 SQL,排除所有视图。
参数
-
array
$config
返回值
array<mixed>
truncateTableSql() ¶ 抽象 公共
truncateTableSql(Cake\Database\Schema\TableSchema $schema): array
生成截断表的 SQL。
参数
-
Cake\Database\Schema\TableSchema
$schema 表实例。
返回值
array