Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » MobiLink - 服务器管理 » MobiLink 参考 » 远程数据库和统一数据库之间的 MobiLink 数据映射

 

MySQL 数据映射

映射到 MySQL 统一数据类型

下表列出了 SQL Anywhere 和 UltraLite 远程数据类型与 MySQL 统一数据类型的映射关系。例如,远程数据库中类型为 TEXT 的列对应统一数据库中的类型 LONGTEXT。

SQL Anywhere 或 UltraLite 数据类型

MySQL 数据类型

注意

BIGINT

BIGINT

BINARY(n<=255)

BINARY(n)

BINARY(n>255)

BLOB

BIT

BIT

CHAR(n<=255)

CHAR(n)

CHAR(n>255)

TEXT(n)

DATE

DATE

年份的范围必须在 1000 到 9999 之间。

DATETIME

DATETIME

MySQL DATETIME 数据类型不支持小数秒。年份的范围必须在 1000 到 9999 之间。

DECIMAL(p<=65,s<=30)

DECIMAL(p,s)

DECIMAL(p>65,s>30)

如果精度大于 65 或小数位数大于 30,则 MySQL 中将没有对应的数据类型。

DOUBLE

DOUBLE

FLOAT

FLOAT

IMAGE

LONGBLOB

INTEGER

INTEGER

LONG BINARY

LONGBLOB

LONG NVARCHAR

LONGTEXT CHARACTER SET UTF8

LONG VARBIT

LONGTEXT

LONG VARCHAR

LONGTEXT

MONEY

NUMERIC(19,4)

NCHAR(n<=255)

CHAR(n) CHARACTER SET UTF8

NCHAR(n>255)

TEXT CHARACTER SET UTF8

NTEXT

LONGTEXT CHARACTER SET UTF8

NUMERIC(p<=65,s<=30)

DECIMAL(p,s)

NUMERIC(p>65,s>30)

MySQL 中没有对应的数据类型。

NVARCHAR(n)

VARCHAR(n) CHARACTER SET UTF8

REAL

REAL

SMALLDATETIME

DATETIME

MySQL DATETIME 数据类型不支持小数秒。年份的范围必须在 1000 到 9999 之间。

SMALLINT

SMALLINT

SMALLMONEY

NUMERIC(10,4)

TEXT

LONGTEXT

TIME

TIME

MySQL TIME 数据类型不支持小数秒。

TIMESTAMP

DATETIME

MySQL DATETIME 数据类型不支持小数秒。年份的范围必须在 1000 到 9999 之间。

TINYINT

TINYINT UNSIGNED

在 SQL Anywhere 和 UltraLite 中,TINYINT 始终是无符号的。

UNIQUEIDENTIFIER

CHAR(36)

UNIQUEIDENTIFIERSTR

CHAR(36)

VARBINARY(n)

VARCHAR(n)

VARBIT(n<=8000)

VARCHAR(n)

VARBIT(n>8000)

TEXT

VARCHAR(n)

VARCHAR(n)

XML

LONGTEXT

映射到 SQL Anywhere 或 UltraLite 远程数据类型

下表列出了 MySQL 统一数据类型与 SQL Anywhere 和 UltraLite 远程数据类型的映射关系。例如,统一数据库中类型为 BOOL 的列对应远程数据库中的类型 BIT。

MySQL 数据类型 SQL Anywhere 或 UltraLite 数据类型 注意

BIGINT

BIGINT

BINARY(n)

BINARY(n)

BIT(1)

BIT

BIT(n>1)

UNSIGNED BIGINT

BLOB(n<=32767)

VARBINARY(n)

BLOB(n>32767)

IMAGE

BOOL

BIT

CHAR(n)

CHAR(n)

DATE

DATE

年份的范围必须在 1000 到 9999 之间。

DATETIME

DATETIME

MySQL DATETIME 数据类型不支持小数秒。年份的范围必须在 1000 到 9999 之间。

DOUBLE

DOUBLE

DECIMAL

DECIMAL

ENUM

在 SQL Anywhere 或 UltraLite 中没有相应的数据类型。

GEOMETRY

在 SQL Anywhere 或 UltraLite 中没有相应的数据类型。

INTEGER

INTEGER

LINESTRING

在 SQL Anywhere 或 UltraLite 中没有相应的数据类型。

LONGBLOB

IMAGE

LONGTEXT

TEXT

MEDIUMBLOB

IMAGE

MEDIUMINT

INTEGER

MEDIUMTEXT

TEXT

MULTILINESTRING

在 SQL Anywhere 或 UltraLite 中没有相应的数据类型。

MULTIPOINT

在 SQL Anywhere 或 UltraLite 中没有相应的数据类型。

MULTIPOLYGON

在 SQL Anywhere 或 UltraLite 中没有相应的数据类型。

NCHAR

NCHAR

在 UltraLite 中不可用。

NUMERIC

NUMERIC

NVARCHAR

NVARCHAR

在 UltraLite 中不可用。

POINT

在 SQL Anywhere 或 UltraLite 中没有相应的数据类型。

POLYGON

在 SQL Anywhere 或 UltraLite 中没有相应的数据类型。

REAL

REAL

SET

在 SQL Anywhere 或 UltraLite 中没有相应的数据类型。

SMALLINT

SMALLINT

TEXT(n<=32767)

VARCHAR(n)

TEXT(n>32767)

TEXT

TIME

TIME

MySQL TIME 数据类型不支持小数秒。在 MySQL 中,TIME 的范围是 '-838:59:59' 到 '838:59:59'。在 SQL Anywhere 或 UltraLite 中,TIME 的范围是 '00:00:00.000000' 到 '23:59:59:999999'。

TIMESTAMP

TIMESTAMP

MySQL DATETIME 数据类型不支持小数秒。年份的范围必须在 1000 到 9999 之间。虽然 MySQL 提供对 TIMESTAMP 列的自动初始化和更新,但 SQL Anywhere 和 UltraLite 只提供自动初始化。

TINYBLOB

VARBINARY

TINYINT

SMALLINT

在 SQL Anywhere 和 UltraLite 中,TINYINT 始终是无符号的。必须是正值。

TINYINT UNSIGNED

TINYINT

在 SQL Anywhere 和 UltraLite 中,TINYINT 始终是无符号的。

TINYTEXT

VARCHAR

VARBINARY(n<=32767)

VARBINARY(n)

VARBINARY(n>32767)

IMAGE

VARCHAR(n<=32767)

VARCHAR(n)

VARCHAR(n>32767)

TEXT

YEAR[(2|4)]

INTEGER

SQL Anywhere 和 UltraLite 不支持 YEAR 数据类型。需要将 YEAR 映射到远程数据库中的 INTEGER。INTEGER 值必须在 1000 到 9999 之间。