function Schema::dropField
Drop a field.
Parameters
$table: The table to be altered.
$field: The field to be dropped.
Return value
bool TRUE if the field was successfully dropped, FALSE if there was no field by that name to begin with.
Overrides Schema::dropField
File
- 
              core/
modules/ mysql/ src/ Driver/ Database/ mysql/ Schema.php, line 465  
Class
- Schema
 - MySQL implementation of \Drupal\Core\Database\Schema.
 
Namespace
Drupal\mysql\Driver\Database\mysqlCode
public function dropField($table, $field) {
  if (!$this->fieldExists($table, $field)) {
    return FALSE;
  }
  // When dropping a field that is part of a composite primary key MySQL
  // automatically removes the field from the primary key, which can leave the
  // table in an invalid state. MariaDB 10.2.8 requires explicitly dropping
  // the primary key first for this reason. We perform this deletion
  // explicitly which also makes the behavior on both MySQL and MariaDB
  // consistent with PostgreSQL.
  // @see https://mariadb.com/kb/en/library/alter-table
  $primary_key = $this->findPrimaryKeyColumns($table);
  if (count($primary_key) > 1 && in_array($field, $primary_key, TRUE)) {
    $this->dropPrimaryKey($table);
  }
  $this->connection
    ->query('ALTER TABLE {' . $table . '} DROP `' . $field . '`');
  return TRUE;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.