Same name and namespace in other branches
  1. 8.9.x core/lib/Drupal/Core/Database/Schema.php \Drupal\Core\Database\Schema::createTable()
  2. 9 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);
  }
}