老葛的Drupal培训班 Think in Drupal
如果你知道你的数据库引擎的准确字段类型,那么你可以在你的模式定义中使用mysql_type (或者 pgsql_type)键.这将覆写该数据库引擎的type和size键。例如,MySQL有一个名为TINYBLOB的字段类型,专门用于小一点的二进位大对象。如果对于MySQL,我们为其使用TINYBLOB类型,而对于其它的数据库引擎,我们则为其使用普通的BLOB类型,那么在Drupal中该如何声明呢?答案如下所示:
$field['fieldname'] = array(
'mysql_type' > 'TINYBLOB', // MySQL will use this.
'type' => 'blob', // Other databases will use this.
'size' => 'normal', // Other databases will use this.
'not null' => TRUE,
'description' => t('Wee little blobs.')
);
MySQL和PostgreSQL的本地类型,如表5-2所示。
表 5-2.如何将模式定义中的Type和Size键映射到本地的数据库类型
类型 尺寸 MySQL PostgreSQL
varchar normal VARCHAR varchar
char normal CHAR character
text tiny TINYTEXT text
text small TINYTEXT text
text medium MEDIUMTEXT text
text big LONGTEXT text
text normal TEXT text
serial tiny TINYINT serial
serial small SMALLINT serial
serial medium MEDIUMINT serial
serial big BIGINT bigserial
serial normal INT serial
int tiny TINYINT smallint
int small SMALLINT smallint
int medium MEDIUMINT int
int big BIGINT bigint
int normal INT int
float tiny FLOAT real
float small FLOAT real
float medium FLOAT real
float big DOUBLE double precision
float normal FLOAT real
numeric normal DECIMAL numeric
blob big LONGBLOB bytea
blob normal BLOB bytea
datetime normal DATETIME timestamp