function Schema::createPrimaryKeySql

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

Create the SQL expression for primary and unique keys.

Postgresql does not support key length. It does support fillfactor, but that requires a separate database lookup for each column in the key. The key length defined in the schema is ignored.

3 calls to Schema::createPrimaryKeySql()
Schema::addPrimaryKey in core/modules/pgsql/src/Driver/Database/pgsql/Schema.php
Add a primary key.
Schema::addUniqueKey in core/modules/pgsql/src/Driver/Database/pgsql/Schema.php
Add a unique key.
Schema::createTableSql in core/modules/pgsql/src/Driver/Database/pgsql/Schema.php
Generate SQL to create a new table from a Drupal schema definition.

File

core/modules/pgsql/src/Driver/Database/pgsql/Schema.php, line 493

Class

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

Namespace

Drupal\pgsql\Driver\Database\pgsql

Code

protected function createPrimaryKeySql($fields) {
    $return = [];
    foreach ($fields as $field) {
        if (is_array($field)) {
            $return[] = '"' . $field[0] . '"';
        }
        else {
            $return[] = '"' . $field . '"';
        }
    }
    return implode(', ', $return);
}

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