# Class yii\db\TableSchema

Inheritance | yii\db\TableSchema » yii\base\BaseObject
Implements | yii\base\Configurable
Subclasses | yii\db\mssql\TableSchema
Available since version | 2.0
Source Code | https://github.com/yiisoft/yii2/blob/master/framework/db/TableSchema.php

TableSchema represents the metadata of a database table.

## Public Properties

Hide inherited properties

Property | Type | Description | Defined By
--- | --- | --- | ---
$columnNames | array | List of column names. This property is read-only. | yii\db\TableSchema
$columns | yii\db\ColumnSchema[] | Column metadata of this table. | yii\db\TableSchema
$foreignKeys | array | Foreign keys of this table. | yii\db\TableSchema
$fullName | string | The full name of this table, which includes the schema name prefix, if any. | yii\db\TableSchema
$name | string | The name of this table. | yii\db\TableSchema
$primaryKey | string[] | Primary keys of this table. | yii\db\TableSchema
$schemaName | string | The name of the schema that this table belongs to. | yii\db\TableSchema
$sequenceName | string | Sequence name for the primary key. | yii\db\TableSchema

## Public Methods

Hide inherited methods

Method | Description | Defined By
--- | --- | ---
__call() | Calls the named method which is not a class method. | yii\base\BaseObject
__construct() | Constructor. | yii\base\BaseObject
__get() | Returns the value of an object property. | yii\base\BaseObject
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\BaseObject
__set() | Sets value of an object property. | yii\base\BaseObject
__unset() | Sets an object property to null. | yii\base\BaseObject
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\BaseObject
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\BaseObject
className() | Returns the fully qualified name of this class. | yii\base\BaseObject
fixPrimaryKey() | Manually specifies the primary key for this table. | yii\db\TableSchema
getColumn() | Gets the named column metadata. | yii\db\TableSchema
getColumnNames() | Returns the names of all columns in this table. | yii\db\TableSchema
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\BaseObject
hasProperty() | Returns a value indicating whether a property is defined. | yii\base\BaseObject
init() | Initializes the object. | yii\base\BaseObject

## Property Details

$columnNames public property

List of column names. This property is read-only.

public array $columnNames = null
$columns public property

Column metadata of this table. Each array element is a yii\db\ColumnSchema object, indexed by column names.

public yii\db\ColumnSchema[] $columns = []
$foreignKeys public property

Foreign keys of this table. Each array element is of the following structure:

    [
     'ForeignTableName',
     'fk1' => 'pk1',  // pk1 is in foreign table
     'fk2' => 'pk2',  // if composite foreign key
    ]

public array $foreignKeys = []
$fullName public property

The full name of this table, which includes the schema name prefix, if any. Note that if the schema name is the same as the default schema name, the schema name will not be included.

public string $fullName = null
$name public property

The name of this table. The schema name is not included. Use $fullName to get the name with schema name prefix.

public string $name = null
$primaryKey public property

Primary keys of this table.

public string[] $primaryKey = []
$schemaName public property

The name of the schema that this table belongs to.

public string $schemaName = null
$sequenceName public property

Sequence name for the primary key. Null if no sequence.

public string $sequenceName = null

## Method Details

fixPrimaryKey() public method

Manually specifies the primary key for this table.

public void fixPrimaryKey ( $keys )
$keys | string|array | The primary key (can be composite)
throws | yii\base\InvalidArgumentException | if the specified key cannot be found in the table.

getColumn() public method

Gets the named column metadata.

This is a convenient method for retrieving a named column even if it does not exist.

public yii\db\ColumnSchema getColumn ( $name )
$name | string | Column name
return | yii\db\ColumnSchema | Metadata of the named column. Null if the named column does not exist.

getColumnNames() public method

Returns the names of all columns in this table.

public array getColumnNames ( )
return | array | List of column names