public Schema::queryFieldInformation($table, $field)
Fetch the list of CHECK constraints used on a field.
We introspect the database to collect the information required by field alteration.
$table: The non-prefixed name of the table.
$field: The name of the field.
An array of all the checks for the field.
public function queryFieldInformation($table, $field) { $prefixInfo = $this->getPrefixInfo($table, TRUE); // Split the key into schema and table for querying. $schema = $prefixInfo['schema']; $table_name = $prefixInfo['table']; $this->connection->addSavepoint(); try { $checks = $this->connection->query("SELECT conname FROM pg_class cl INNER JOIN pg_constraint co ON co.conrelid = cl.oid INNER JOIN pg_attribute attr ON attr.attrelid = cl.oid AND attr.attnum = ANY (co.conkey) INNER JOIN pg_namespace ns ON cl.relnamespace = ns.oid WHERE co.contype = 'c' AND ns.nspname = :schema AND cl.relname = :table AND attr.attname = :column", array( ':schema' => $schema, ':table' => $table_name, ':column' => $field, )); } catch (\Exception $e) { $this->connection->rollbackSavepoint(); throw $e; } $this->connection->releaseSavepoint(); $field_information = $checks->fetchCol(); return $field_information; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Database!Driver!pgsql!Schema.php/function/Schema::queryFieldInformation/8.1.x