function DatabaseSchema_pgsql::constraintExists
Helper function: check if a constraint (PK, FK, UK) exists.
Parameters
$table: The name of the table.
$name: The name of the constraint (typically 'pkey' or '[constraint]_key').
4 calls to DatabaseSchema_pgsql::constraintExists()
- DatabaseSchema_pgsql::addPrimaryKey in includes/
database/ pgsql/ schema.inc - Add a primary key.
- DatabaseSchema_pgsql::addUniqueKey in includes/
database/ pgsql/ schema.inc - Add a unique key.
- DatabaseSchema_pgsql::dropPrimaryKey in includes/
database/ pgsql/ schema.inc - Drop the primary key.
- DatabaseSchema_pgsql::dropUniqueKey in includes/
database/ pgsql/ schema.inc - Drop a unique key.
File
-
includes/
database/ pgsql/ schema.inc, line 627
Class
Code
protected function constraintExists($table, $name) {
// ensureIdentifiersLength() expects three parameters, thus we split our
// constraint name in a proper name and a suffix.
if ($name == 'pkey') {
$suffix = $name;
$name = '';
}
else {
$pos = strrpos($name, '_');
$suffix = substr($name, $pos + 1);
$name = substr($name, 0, $pos);
}
$constraint_name = $this->ensureIdentifiersLength($table, $name, $suffix);
return (bool) $this->connection
->query("SELECT 1 FROM pg_constraint WHERE conname = '{$constraint_name}'")
->fetchField();
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.