function Schema::createColumnsSql

Same name and namespace in other branches
  1. 9 core/modules/sqlite/src/Driver/Database/sqlite/Schema.php \Drupal\sqlite\Driver\Database\sqlite\Schema::createColumnsSql()
  2. 8.9.x core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php \Drupal\Core\Database\Driver\sqlite\Schema::createColumnsSql()
  3. 10 core/modules/sqlite/src/Driver/Database/sqlite/Schema.php \Drupal\sqlite\Driver\Database\sqlite\Schema::createColumnsSql()

Build the SQL expression for creating columns.

1 call to Schema::createColumnsSql()
Schema::createTableSql in core/modules/sqlite/src/Driver/Database/sqlite/Schema.php
Generate SQL to create a new table from a Drupal schema definition.

File

core/modules/sqlite/src/Driver/Database/sqlite/Schema.php, line 81

Class

Schema
SQLite implementation of <a href="/api/drupal/core%21lib%21Drupal%21Core%21Database%21Schema.php/class/Schema/11.x" title="Provides a base implementation for Database Schema." class="local">\Drupal\Core\Database\Schema</a>.

Namespace

Drupal\sqlite\Driver\Database\sqlite

Code

protected function createColumnsSql($tablename, $schema) {
    $sql_array = [];
    // Add the SQL statement for each field.
    foreach ($schema['fields'] as $name => $field) {
        if (isset($field['type']) && $field['type'] == 'serial') {
            if (isset($schema['primary key']) && ($key = array_search($name, $schema['primary key'])) !== FALSE) {
                unset($schema['primary key'][$key]);
            }
        }
        $sql_array[] = $this->createFieldSql($name, $this->processField($field));
    }
    // Process keys.
    if (!empty($schema['primary key'])) {
        $sql_array[] = " PRIMARY KEY (" . $this->createKeySql($schema['primary key']) . ")";
    }
    return implode(", \n", $sql_array);
}

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