final class TableDefinition

Structured representation of a table's schema metadata.

Values remain opaque to the neutral core until a platform interprets them. This also preserves driver values such as LOB streams and caller literals.

Type Aliases§

RowValue = mixed
Row = array<string, RowValue>

Properties§

public array<string, ColumnDeclaration> $typedColumns
public array<string, string> $columnDefaults
public array<string, IdentityGenerationStrategy> $identityStrategies
public array<string, string> $generatedExpressions
public array<string, ForeignKeyDefinition> $foreignKeys
public TablePartitioning|null $partitioning
public TablePartitionKey|null $partitionKey
public TablePartitionRelation|null $partitionRelation
public array<string, PartialUniqueIndex> $partialUniqueIndexes
public list<string> $columns
public array<string, string> $columnTypes
public list<string> $primaryKeys
public list<string> $notNullColumns
public array<string, list<string>> $uniqueConstraints

Methods§

public function __construct(
    public list<string> $columns,
    public array<string, string> $columnTypes,
    public list<string> $primaryKeys,
    public list<string> $notNullColumns,
    public array<string, list<string>> $uniqueConstraints,
    array<string, ColumnDeclaration> $typedColumns = [],
    array<string, string> $columnDefaults = [],
    array<string, IdentityGenerationStrategy> $identityStrategies = [],
    array<string, string> $generatedExpressions = [],
    array<string, ForeignKeyDefinition> $foreignKeys = [],
    TablePartitioning|null $partitioning = null,
    TablePartitionKey|null $partitionKey = null,
    TablePartitionRelation|null $partitionRelation = null,
    array<string, PartialUniqueIndex> $partialUniqueIndexes = [],
)

Parameters

$columnslist<string>Column names in declaration order.
$columnTypesarray<string, string>Column name => MySQL type string.
$primaryKeyslist<string>Primary key column names.
$notNullColumnslist<string>Columns with NOT NULL constraint.
$uniqueConstraintsarray<string, list<string>>Key name => column list.
$typedColumnsarray<string, ColumnDeclaration>Column name => structured ColumnDeclaration.
$columnDefaultsarray<string, string>Column name => SQL default expression.
$identityStrategiesarray<string, IdentityGenerationStrategy>Column name => shadow generation strategy.
$generatedExpressionsarray<string, string>Column name => database generated expression.
$foreignKeysarray<string, ForeignKeyDefinition>Constraint name => foreign-key definition.
$partitioningTablePartitioning|nullNamed partition selection predicates.
$partitionKeyTablePartitionKey|nullDeclarative partition key metadata.
$partitionRelationTablePartitionRelation|nullParent partition relationship.
$partialUniqueIndexesarray<string, PartialUniqueIndex>Partial unique indexes keyed by name.
Test cases 7
public function withPartitioning(?TablePartitioning $partitioning): self

With partitioning.

Parameters

$partitioning?TablePartitioning

Returns

self
Test cases 1
Calls 1
public function withPartitionKey(?TablePartitionKey $partitionKey): self
public function withPartitionRelation(?TablePartitionRelation $partitionRelation): self
public function withPartialUniqueIndex(PartialUniqueIndex $index): self

With partial unique index.

Parameters

Returns

self
Test cases 1
Calls 1

Test cases 115§

Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.

Dedicated tests 7
Other tests reaching this symbol 108

Relations§

Instantiated in 1
Type declarations 13