private function alterColumnParameters(\Database\Datatype $new) { $table_name = $this->getFullName(); $column_name = $new->getName(); $datatype = $new->getDatatype(); $q[] = $datatype; $size = $new->getSize(); if (!empty($size)) { $q[] = '(' . $new->getSize() . ')'; } $q[] = $new->getExtraInfo(); $new_column_parameters = implode(' ', $q); $query = <<<EOF ALTER TABLE {$table_name} ALTER COLUMN {$column_name} TYPE {$new_column_parameters} EOF; $this->db->exec($query); }
/** * Modifys the parameters of a datatype column. * @param \Database\Datatype $old * @param \Database\Datatype $new */ public function alter(\Database\Datatype $old, \Database\Datatype $new) { $table_name = $this->getFullName(); $old_column_name = $old->getName(); $new_column_parameters = $new->getParameterString(); $query = <<<EOF ALTER TABLE {$table_name} MODIFY {$old_column_name} {$new_column_parameters} EOF; $this->db->exec($query); }