protected function Schema::findPrimaryKeyColumns in Drupal 10
Same name in this branch
- 10 core/lib/Drupal/Core/Database/Schema.php \Drupal\Core\Database\Schema::findPrimaryKeyColumns()
- 10 core/modules/sqlite/src/Driver/Database/sqlite/Schema.php \Drupal\sqlite\Driver\Database\sqlite\Schema::findPrimaryKeyColumns()
- 10 core/modules/pgsql/src/Driver/Database/pgsql/Schema.php \Drupal\pgsql\Driver\Database\pgsql\Schema::findPrimaryKeyColumns()
- 10 core/modules/mysql/src/Driver/Database/mysql/Schema.php \Drupal\mysql\Driver\Database\mysql\Schema::findPrimaryKeyColumns()
Finds the primary key columns of a table, from the database.
Parameters
string $table: The name of the table.
Return value
string[]|false A simple array with the names of the columns composing the table's primary key, or FALSE if the table does not exist.
Throws
\RuntimeException If the driver does not override this method.
Overrides Schema::findPrimaryKeyColumns
File
- core/
modules/ pgsql/ src/ Driver/ Database/ pgsql/ Schema.php, line 787
Class
- Schema
- PostgreSQL implementation of \Drupal\Core\Database\Schema.
Namespace
Drupal\pgsql\Driver\Database\pgsqlCode
protected function findPrimaryKeyColumns($table) {
if (!$this
->tableExists($table)) {
return FALSE;
}
return $this->connection
->query("SELECT array_position(i.indkey, a.attnum) AS position, a.attname FROM pg_index i JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey) WHERE i.indrelid = '{" . $table . "}'::regclass AND i.indisprimary ORDER BY position")
->fetchAllKeyed();
}