类 TableSchema
代表数据库模式中的单个表。
可以使用反射 API 或通过使用方法逐步构建实例来填充。
创建后,TableSchema 实例可以添加到 Schema\Collection 对象中。 它们也可以使用 createSql()、dropSql() 和 truncateSql() 方法转换为 SQL。
常量
-
字符串
ACTION_CASCADE ¶'cascade'
外键级联操作
-
字符串
ACTION_NO_ACTION ¶'noAction'
外键无操作
-
字符串
ACTION_RESTRICT ¶'restrict'
外键限制操作
-
字符串
ACTION_SET_DEFAULT ¶'setDefault'
外键限制默认值
-
字符串
ACTION_SET_NULL ¶'setNull'
外键设为 null 操作
-
字符串
CONSTRAINT_FOREIGN ¶'foreign'
外键约束类型
-
字符串
CONSTRAINT_PRIMARY ¶'primary'
主键约束类型
-
字符串
CONSTRAINT_UNIQUE ¶'unique'
唯一约束类型
-
数组
GEOSPATIAL_TYPES ¶[self::TYPE_GEOMETRY, self::TYPE_POINT, self::TYPE_LINESTRING, self::TYPE_POLYGON]
地理空间列类型
-
字符串
INDEX_FULLTEXT ¶'fulltext'
全文索引类型
-
字符串
INDEX_INDEX ¶'index'
索引 - 索引类型
-
整数
LENGTH_LONG ¶4294967295
使用
long
列类型时的列长度 -
整数
LENGTH_MEDIUM ¶16777215
使用
medium
列类型时的列长度 -
整数
LENGTH_TINY ¶255
使用
tiny
列类型时的列长度 -
字符串
TYPE_BIGINTEGER ¶'biginteger'
大整数列类型
-
字符串
TYPE_BINARY ¶'binary'
二进制列类型
-
字符串
TYPE_BINARY_UUID ¶'binaryuuid'
二进制 UUID 列类型
-
字符串
TYPE_BOOLEAN ¶'boolean'
布尔列类型
-
字符串
TYPE_CHAR ¶'char'
字符列类型
-
字符串
TYPE_DATE ¶'date'
日期列类型
-
字符串
TYPE_DATETIME ¶'datetime'
日期时间列类型
-
字符串
TYPE_DATETIME_FRACTIONAL ¶'datetimefractional'
带小数秒的日期时间列类型
-
字符串
TYPE_DECIMAL ¶'decimal'
十进制列类型
-
字符串
TYPE_FLOAT ¶'float'
浮点列类型
-
字符串
TYPE_GEOMETRY ¶'geometry'
几何列类型
-
字符串
TYPE_INTEGER ¶'integer'
整数列类型
-
字符串
TYPE_JSON ¶'json'
JSON 列类型
-
字符串
TYPE_LINESTRING ¶'linestring'
线字符串列类型
-
字符串
TYPE_POINT ¶'point'
点列类型
-
字符串
TYPE_POLYGON ¶'polygon'
多边形列类型
-
字符串
TYPE_SMALLINTEGER ¶'smallinteger'
小整数列类型
-
字符串
TYPE_STRING ¶'string'
字符串列类型
-
字符串
TYPE_TEXT ¶'text'
文本列类型
-
字符串
TYPE_TIME ¶'time'
時間列のタイプ
-
字符串
TYPE_TIMESTAMP ¶'timestamp'
タイムスタンプ列のタイプ
-
字符串
TYPE_TIMESTAMP_FRACTIONAL ¶'timestampfractional'
小数秒を含むタイムスタンプ列のタイプ
-
字符串
TYPE_TIMESTAMP_TIMEZONE ¶'timestamptimezone'
タイムゾーンを含むタイムスタンプ列のタイプ
-
字符串
TYPE_TINYINTEGER ¶'tinyinteger'
Tiny Integer 列のタイプ
-
字符串
TYPE_UUID ¶'uuid'
UUID 列のタイプ
プロパティの概要
-
$_columnExtras protected static
array<string, array<string, mixed>>
追加のタイプ固有のプロパティ。
-
$_columnKeys protected static
array<string, mixed>
列定義で使用できる有効なキー。
-
$_columns protected
array<string, array>
テーブル内の列。
-
$_constraints protected
array<string, array<string, mixed>>
テーブル内の制約。
-
$_indexKeys protected static
array<string, mixed>
インデックス定義で使用できる有効なキー。
-
$_indexes protected
array<string, array>
テーブル内のインデックス。
-
$_options protected
array<string, mixed>
テーブルのオプション。
-
$_table protected
字符串
テーブルの名前。
-
$_temporary protected
bool
テーブルが一時的なものであるかどうか。
-
$_typeMap protected
array<string, string>
列とタイプを対応付けたマップ。
-
$_validConstraintTypes protected static
list<string>
有効な制約タイプの名前。
-
$_validForeignKeyActions protected static
list<string>
有効な外部キーアクションの名前。
-
$_validIndexTypes protected static
list<string>
有効なインデックスタイプの名前。
-
$columnLengths public static
array<string, int>
テキストタイプの列で使用できる有効な列の長さ。
メソッドの概要
-
__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
テーブルの名前を取得します。
-
removeColumn() public
テーブルスキーマから列を削除します。
-
setColumnType() public
列のタイプを設定します。
-
setOptions() public
テーブルのオプションを設定します。
-
setTemporary() public
テーブルがデータベース内で一時的なものであるかどうかを設定します。
-
truncateSql() public
テーブルをトランケートするための SQL 文を生成します。
-
typeMap() public
キーがスキーマ内の列名で、値が対応するデータベースタイプである配列を返します。
メソッドの詳細
__construct() ¶ public
__construct(string $table, array<string, array|string> $columns = [])
コンストラクター。
パラメーター
-
string
$table テーブルの名前。
-
array<string, array|string>
$columns optional スキーマの列のリスト。
__debugInfo() ¶ public
__debugInfo(): array<string, mixed>
テーブルスキーマの配列を返します。
返り値
array<string, mixed>
_checkForeignKey() ¶ protected
_checkForeignKey(array<string, mixed> $attrs): array<string, mixed>
外部キーをチェック/検証するためのヘルパーメソッド。
パラメーター
-
array<string, mixed>
$attrs 設定する属性。
返り値
array<string, mixed>
例外
Cake\Database\Exception\DatabaseException
外部キーの定義が不正な場合。
addColumn() ¶ public
addColumn(string $name, array<string, mixed>|string $attrs): $this
テーブルに列を追加します。
属性
列にはいくつかの属性を設定できます。
type
列のタイプ。CakePHP の抽象タイプを指定してください。length
列の長さ。precision
浮動小数点および10進数のタイプで格納する小数点以下の桁数。default
列のデフォルト値。null
列が null を保持できるかどうか。fixed
列が固定長列かどうか。これは文字列列でのみ使用できます。unsigned
列が符号なし列かどうか。これは整数、10進数、浮動小数点列でのみ使用できます。
上記のキーに加えて、以下のキーは一部のデータベース方言では実装されていますが、すべてではありません。
comment
列のコメント。
パラメーター
-
string
$name -
array<string, mixed>|string
$attrs
返り値
$this
addConstraint() ¶ public
addConstraint(string $name, array<string, mixed>|string $attrs): $this
制約を追加します。
テーブルに制約を追加するために使用されます。例として、主キー、一意キー、外部キーなどがあります。
属性
type
追加する制約のタイプ。columns
インデックス内の列。references
外部キーが参照するテーブルと列。update
更新時の動作。オプションは 'restrict', 'setNull', 'cascade', 'noAction' です。delete
削除時の動作。オプションは 'restrict', 'setNull', 'cascade', 'noAction' です。
'update' および 'delete' のデフォルトは 'cascade' です。
パラメーター
-
string
$name -
array<string, mixed>|string
$attrs
返り値
$this
addConstraintSql() ¶ public
addConstraintSql(Cake\Database\Connection $connection): array
テーブルに制約を追加する SQL 文を生成します。
パラメーター
-
Cake\Database\Connection
$connection
返り値
数组
addIndex() ¶ public
addIndex(string $name, array<string, mixed>|string $attrs): $this
インデックスを追加します。
インデックスとフルテキストインデックスを追加するために使用されます (サポートされているプラットフォームの場合)。
属性
type
追加するインデックスのタイプ。columns
インデックス内の列。
パラメーター
-
string
$name -
array<string, mixed>|string
$attrs
返り値
$this
baseColumnType() ¶ public
baseColumnType(string $column): string|null
指定された列の基本タイプ名を返します。これは、より複雑なクラスが基づいているデータベースタイプを表します。
パラメーター
-
string
$column
返り値
string|null
createSql() ¶ public
createSql(Cake\Database\Connection $connection): array
テーブルを作成するための SQL を生成します。
接続を使用してスキーマ方言にアクセスし、プラットフォーム固有の SQL を生成します。
パラメーター
-
Cake\Database\Connection
$connection
返り値
数组
defaultValues() ¶ public
defaultValues(): array<string, mixed>
列とそのデフォルト値のハッシュを返します。
返り値
array<string, mixed>
dropConstraint() ¶ public
dropConstraint(string $name): $this
制約を削除します。
パラメーター
-
string
$name
返り値
$this
dropConstraintSql() ¶ public
dropConstraintSql(Cake\Database\Connection $connection): array
テーブルから制約を削除する SQL 文を生成します。
パラメーター
-
Cake\Database\Connection
$connection
返り値
数组
dropSql() ¶ public
dropSql(Cake\Database\Connection $connection): array
テーブルを削除するための SQL を生成します。
接続を使用してスキーマ方言にアクセスし、プラットフォーム固有の SQL を生成します。
パラメーター
-
Cake\Database\Connection
$connection
返り値
数组
getColumn() ¶ public
getColumn(string $name): array<string, mixed>|null
テーブル内の列データを取得します。
パラメーター
-
string
$name
返り値
array<string, mixed>|null
getColumnType() ¶ public
getColumnType(string $name): string|null
列のタイプを返します。列が存在しない場合は null を返します。
パラメーター
-
string
$name
返り値
string|null
getConstraint() ¶ public
getConstraint(string $name): array<string, mixed>|null
名前を基に制約に関する情報を取得します。
パラメーター
-
string
$name
返り値
array<string, mixed>|null
getIndex() ¶ public
getIndex(string $name): array<string, mixed>|null
名前を基にインデックスに関する情報を取得します。
パラメーター
-
string
$name
返り値
array<string, mixed>|null
getOptions() ¶ public
getOptions(): array<string, mixed>
テーブルのオプションを取得します。
表选项允许您设置特定平台的表级选项。例如,MySQL 中的引擎类型。
返り値
array<string, mixed>
hasColumn() ¶ public
hasColumn(string $name): bool
スキーマに列が存在する場合は true を返します。
パラメーター
-
string
$name
返り値
bool
isNullable() ¶ public
isNullable(string $name): bool
フィールドが null 許容可能かどうかをチェックします。
缺失的列是可为空的。
パラメーター
-
string
$name
返り値
bool
removeColumn() ¶ public
removeColumn(string $name): $this
テーブルスキーマから列を削除します。
如果列未在表中定义,则不会引发错误。
パラメーター
-
string
$name
返り値
$this
setColumnType() ¶ public
setColumnType(string $name, string $type): $this
列のタイプを設定します。
パラメーター
-
string
$name -
string
$type
返り値
$this
setOptions() ¶ public
setOptions(array<string, mixed> $options): $this
テーブルのオプションを設定します。
表选项允许您设置特定平台的表级选项。例如,MySQL 中的引擎类型。
パラメーター
-
array<string, mixed>
$options
返り値
$this
setTemporary() ¶ public
setTemporary(bool $temporary): $this
テーブルがデータベース内で一時的なものであるかどうかを設定します。
パラメーター
-
bool
$temporary
返り値
$this
truncateSql() ¶ public
truncateSql(Cake\Database\Connection $connection): array
テーブルをトランケートするための SQL 文を生成します。
パラメーター
-
Cake\Database\Connection
$connection
返り値
数组
typeMap() ¶ public
typeMap(): array<string, string>
キーがスキーマ内の列名で、値が対応するデータベースタイプである配列を返します。
返り値
array<string, string>