예제 #1
0
 /**
  * Gets the MySQL Column Definition for a Column object.
  *
  * @param Column $column Column
  * @return string
  */
 protected function getColumnSqlDefinition(Column $column)
 {
     $sqlType = $this->getSqlType($column->getType(), $column->getLimit());
     $def = '';
     $def .= strtoupper($sqlType['name']);
     if ($column->getPrecision() && $column->getScale()) {
         $def .= '(' . $column->getPrecision() . ',' . $column->getScale() . ')';
     } elseif (isset($sqlType['limit'])) {
         $def .= '(' . $sqlType['limit'] . ')';
     }
     if (($values = $column->getValues()) && is_array($values)) {
         $def .= "('" . implode("', '", $values) . "')";
     }
     $def .= !$column->isSigned() && isset($this->signedColumnTypes[$column->getType()]) ? ' unsigned' : '';
     $def .= !$column->isZerofill() && isset($this->zerofillColumnTypes[$column->getType()]) ? ' zerofill' : '';
     $def .= $column->isNull() == false ? ' NOT NULL' : ' NULL';
     $def .= $column->isIdentity() ? ' AUTO_INCREMENT' : '';
     $def .= $this->getDefaultValueDefinition($column->getDefault());
     if ($column->getComment()) {
         $def .= ' COMMENT ' . $this->getConnection()->quote($column->getComment());
     }
     if ($column->getUpdate()) {
         $def .= ' ON UPDATE ' . $column->getUpdate();
     }
     return $def;
 }
예제 #2
0
 /**
  * Gets the MySQL Column Definition for a Column object.
  *
  * @param Column $column Column
  * @return string
  */
 protected function getColumnSqlDefinition(Column $column)
 {
     $sqlType = $this->getSqlType($column->getType());
     $def = '';
     $def .= strtoupper($sqlType['name']);
     if ($column->getPrecision() && $column->getScale()) {
         $def .= '(' . $column->getPrecision() . ',' . $column->getScale() . ')';
     }
     $def .= $column->getLimit() || isset($sqlType['limit']) ? '(' . ($column->getLimit() ? $column->getLimit() : $sqlType['limit']) . ')' : '';
     $def .= !$column->isSigned() && isset($this->signedColumnTypes[$column->getType()]) ? ' unsigned' : '';
     $def .= $column->isNull() == false ? ' NOT NULL' : ' NULL';
     $def .= $column->isIdentity() ? ' AUTO_INCREMENT' : '';
     $default = $column->getDefault();
     if (is_numeric($default) || $default == 'CURRENT_TIMESTAMP') {
         $def .= ' DEFAULT ' . $column->getDefault();
     } else {
         $def .= is_null($column->getDefault()) ? '' : ' DEFAULT \'' . $column->getDefault() . '\'';
     }
     if ($column->getComment()) {
         $def .= ' COMMENT ' . $this->getConnection()->quote($column->getComment());
     }
     if ($column->getUpdate()) {
         $def .= ' ON UPDATE ' . $column->getUpdate();
     }
     return $def;
 }
예제 #3
0
 /**
  * Gets the SQLite Column Definition for a Column object.
  *
  * @param Column $column Column
  * @return string
  */
 protected function getColumnSqlDefinition(Column $column)
 {
     $sqlType = $this->getSqlType($column->getType());
     $def = '';
     $def .= strtoupper($sqlType['name']);
     if ($column->getPrecision() && $column->getScale()) {
         $def .= '(' . $column->getPrecision() . ',' . $column->getScale() . ')';
     }
     $limitable = in_array(strtoupper($sqlType['name']), $this->definitionsWithLimits);
     if (($column->getLimit() || isset($sqlType['limit'])) && $limitable) {
         $def .= '(' . ($column->getLimit() ? $column->getLimit() : $sqlType['limit']) . ')';
     }
     $default = $column->getDefault();
     $def .= $column->isNull() || is_null($default) ? ' NULL' : ' NOT NULL';
     $def .= $this->getDefaultValueDefinition($default);
     $def .= $column->isIdentity() ? ' PRIMARY KEY AUTOINCREMENT' : '';
     if ($column->getUpdate()) {
         $def .= ' ON UPDATE ' . $column->getUpdate();
     }
     $def .= $this->getCommentDefinition($column);
     return $def;
 }
예제 #4
0
 /**
  * Gets the MySQL Column Definition for a Column object.
  *
  * @param Column $column Column
  * @return string
  */
 protected function getColumnSqlDefinition(Column $column)
 {
     $sqlType = $this->getSqlType($column->getType());
     $def = '';
     $def = '';
     $def .= strtoupper($sqlType['name']);
     $def .= $column->getLimit() || isset($sqlType['limit']) ? '(' . ($column->getLimit() ? $column->getLimit() : $sqlType['limit']) . ')' : '';
     $def .= $column->isNull() == false ? ' NOT NULL' : ' NULL';
     $def .= $column->isIdentity() ? ' AUTO_INCREMENT' : '';
     $default = $column->getDefault();
     if (is_numeric($default) || $default == 'CURRENT_TIMESTAMP') {
         $def .= ' DEFAULT ' . $column->getDefault();
     } else {
         $def .= is_null($column->getDefault()) ? '' : ' DEFAULT \'' . $column->getDefault() . '\'';
     }
     if ($column->getUpdate()) {
         $def .= ' ON UPDATE ' . $column->getUpdate();
     }
     // TODO - add precision & scale for decimals
     return $def;
 }
예제 #5
0
 /**
  * Gets the SQLite Column Definition for a Column object.
  *
  * @param Column $column Column
  * @return string
  */
 protected function getColumnSqlDefinition(Column $column)
 {
     $sqlType = $this->getSqlType($column->getType());
     $def = '';
     $def .= strtoupper($sqlType['name']);
     if ($column->getPrecision() && $column->getScale()) {
         $def .= '(' . $column->getPrecision() . ',' . $column->getScale() . ')';
     }
     $limitable = in_array(strtoupper($sqlType['name']), $this->definitionsWithLimits);
     if (($column->getLimit() || isset($sqlType['limit'])) && $limitable) {
         $def .= '(' . ($column->getLimit() ? $column->getLimit() : $sqlType['limit']) . ')';
     }
     $default = $column->getDefault();
     $def .= $column->isNull() || is_null($default) ? ' NULL' : ' NOT NULL';
     if (is_numeric($default) || $default == 'CURRENT_TIMESTAMP') {
         $def .= ' DEFAULT ' . $column->getDefault();
     } else {
         if (!is_null($default)) {
             $def .= ' DEFAULT ' . $column->getDefault();
         }
     }
     if ($column->getUpdate()) {
         $def .= ' ON UPDATE ' . $column->getUpdate();
     }
     $def .= $this->getCommentDefinition($column);
     return $def;
 }
 /**
  * Returns the value of the ON UPDATE column function.
  *
  * @return string
  */
 public function getUpdate()
 {
     return $this->column->getUpdate();
 }