11.9 使用其他数据库引擎中的数据类型

为了方便使用为其他供应商的 SQL 实现编写的代码,MySQLMap 了数据类型,如下 table 所示。这些 Map 使将 table 定义从其他数据库系统导入 MySQL 变得更加容易。

其他厂商类型MySQL Type
BOOLTINYINT
BOOLEANTINYINT
CHARACTER VARYING(M)VARCHAR(M)
FIXEDDECIMAL
FLOAT4FLOAT
FLOAT8DOUBLE
INT1TINYINT
INT2SMALLINT
INT3MEDIUMINT
INT4INT
INT8BIGINT
LONG VARBINARYMEDIUMBLOB
LONG VARCHARMEDIUMTEXT
LONGMEDIUMTEXT
MIDDLEINTMEDIUMINT
NUMERICDECIMAL

数据类型 Map 在 table 创建时发生,此后原始类型规范将被丢弃。如果使用其他供应商使用的类型创建 table,然后发出DESCRIBE tbl_name语句,则 MySQL 使用等效的 MySQL 类型报告 table 结构。例如:

mysql> CREATE TABLE t (a BOOL, b FLOAT8, c LONG VARCHAR, d NUMERIC);
Query OK, 0 rows affected (0.00 sec)

mysql> DESCRIBE t;
+-------+---------------+------+-----+---------+-------+
| Field | Type          | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+-------+
| a     | tinyint(1)    | YES  |     | NULL    |       |
| b     | double        | YES  |     | NULL    |       |
| c     | mediumtext    | YES  |     | NULL    |       |
| d     | decimal(10,0) | YES  |     | NULL    |       |
+-------+---------------+------+-----+---------+-------+
4 rows in set (0.01 sec)