You are here

protected function Schema::createTableSql in Drupal driver for SQL Server and SQL Azure 3.0.x

Same name and namespace in other branches
  1. 8.2 drivers/lib/Drupal/Driver/Database/sqlsrv/Schema.php \Drupal\Driver\Database\sqlsrv\Schema::createTableSql()
  2. 8 drivers/lib/Drupal/Driver/Database/sqlsrv/Schema.php \Drupal\Driver\Database\sqlsrv\Schema::createTableSql()

Generate SQL to create a new table from a Drupal schema definition.

Parameters

string $name: The name of the table to create.

array $table: A Schema API table definition array.

Return value

array A collection of SQL statements to create the table.

File

drivers/lib/Drupal/Driver/Database/sqlsrv/Schema.php, line 1354

Class

Schema

Namespace

Drupal\Driver\Database\sqlsrv

Code

protected function createTableSql($name, array $table) {
  $statements = [];
  $sql_fields = [];
  foreach ($table['fields'] as $field_name => $field) {
    $sql_fields[] = $this
      ->createFieldSql($name, $field_name, $this
      ->processField($field));
    if (isset($field['description'])) {
      $statements[] = $this
        ->createCommentSQL($field['description'], $name, $field_name);
    }
  }
  $sql = "CREATE TABLE {{$name}} (" . PHP_EOL;
  $sql .= implode("," . PHP_EOL, $sql_fields);
  $sql .= PHP_EOL . ")";
  array_unshift($statements, $sql);
  if (!empty($table['description'])) {
    $statements[] = $this
      ->createCommentSql($table['description'], $name);
  }
  return $statements;
}