1
0
mirror of synced 2024-12-13 22:56:04 +03:00

support for unique constraint

This commit is contained in:
zYne 2007-02-10 14:22:02 +00:00
parent 3d8ff310c1
commit 31624bce5f

View File

@ -406,6 +406,8 @@ class Doctrine_Export extends Doctrine_Connection_Module
* Text value with the default CHARACTER SET for this field. * Text value with the default CHARACTER SET for this field.
* collation * collation
* Text value with the default COLLATION for this field. * Text value with the default COLLATION for this field.
* unique
* unique constraint
* *
* @return string * @return string
*/ */
@ -442,6 +444,9 @@ class Doctrine_Export extends Doctrine_Connection_Module
* Text value with the default CHARACTER SET for this field. * Text value with the default CHARACTER SET for this field.
* collation * collation
* Text value with the default COLLATION for this field. * Text value with the default COLLATION for this field.
* unique
* unique constraint
*
* @return string DBMS specific SQL code portion that should be used to * @return string DBMS specific SQL code portion that should be used to
* declare the specified field. * declare the specified field.
*/ */
@ -461,21 +466,20 @@ class Doctrine_Export extends Doctrine_Connection_Module
} }
$default = ' DEFAULT ' . $this->conn->quote($field['default'], $field['type']); $default = ' DEFAULT ' . $this->conn->quote($field['default'], $field['type']);
} } elseif (empty($field['notnull'])) {
/**
TODO: is this really needed for portability?
elseif (empty($field['notnull'])) {
$default = ' DEFAULT NULL'; $default = ' DEFAULT NULL';
} }
*/
$charset = empty($field['charset']) ? '' : $charset = (isset($field['charset']) && $field['charset']) ?
' '.$this->getCharsetFieldDeclaration($field['charset']); ' ' . $this->getCharsetFieldDeclaration($field['charset']) : '';
$collation = empty($field['collation']) ? '' : $collation = (isset($field['collation']) && $field['collation']) ?
' '.$this->getCollationFieldDeclaration($field['collation']); ' ' . $this->getCollationFieldDeclaration($field['collation']) : '';
$notnull = empty($field['notnull']) ? '' : ' NOT NULL'; $notnull = (isset($field['notnull']) && $field['notnull']) ? ' NOT NULL' : '';
$unique = (isset($field['unique']) && $field['unique']) ?
' ' . $this->getUniqueFieldDeclaration() : '';
$method = 'get' . $field['type'] . 'Declaration'; $method = 'get' . $field['type'] . 'Declaration';
@ -484,7 +488,18 @@ class Doctrine_Export extends Doctrine_Connection_Module
} else { } else {
$dec = $this->conn->dataDict->getNativeDeclaration($field); $dec = $this->conn->dataDict->getNativeDeclaration($field);
} }
return $this->conn->quoteIdentifier($name, true) . ' ' . $dec . $charset . $default . $notnull . $collation; return $this->conn->quoteIdentifier($name, true) . ' ' . $dec . $charset . $default . $notnull . $unique . $collation;
}
/**
* Obtain DBMS specific SQL code portion needed to set the UNIQUE constraint
* of a field declaration to be used in statements like CREATE TABLE.
*
* @return string DBMS specific SQL code portion needed to set the UNIQUE constraint
* of a field declaration.
*/
public function getUniqueFieldDeclaration()
{
return 'UNIQUE';
} }
/** /**
* Obtain DBMS specific SQL code portion needed to set the CHARACTER SET * Obtain DBMS specific SQL code portion needed to set the CHARACTER SET