function Schema::createTable

Same name in other branches
  1. 9 core/lib/Drupal/Core/Database/Schema.php \Drupal\Core\Database\Schema::createTable()
  2. 8.9.x core/lib/Drupal/Core/Database/Schema.php \Drupal\Core\Database\Schema::createTable()
  3. 10 core/lib/Drupal/Core/Database/Schema.php \Drupal\Core\Database\Schema::createTable()

Create a new table from a Drupal table definition.

Parameters

$name: The name of the table to create.

$table: A Schema API table definition array.

Throws

\Drupal\Core\Database\SchemaObjectExistsException If the specified table already exists.

\BadMethodCallException When ::createTableSql() is not implemented in the concrete driver class.

1 call to Schema::createTable()
Schema::alterTable in core/modules/sqlite/src/Driver/Database/sqlite/Schema.php
Create a table with a new schema containing the old content.

File

core/lib/Drupal/Core/Database/Schema.php, line 613

Class

Schema
Provides a base implementation for Database Schema.

Namespace

Drupal\Core\Database

Code

public function createTable($name, $table) {
    if ($this->tableExists($name)) {
        throw new SchemaObjectExistsException("Table '{$name}' already exists.");
    }
    $statements = $this->createTableSql($name, $table);
    foreach ($statements as $statement) {
        $this->connection
            ->query($statement);
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.