下表列出了 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) |
|
ST_GEOMETRY |
GEOMETRY |
|
TEXT |
LONGTEXT |
|
TIME |
TIME |
MySQL TIME 数据类型不支持小数秒。 |
TIMESTAMP |
DATETIME |
MySQL DATETIME 数据类型不支持小数秒。年份的范围必须在 1000 到 9999 之间。 |
TIMESTAMP WITH TIME ZONE | VARCHAR(34) | MySQL 中没有对等的数据类型。因此,TIMESTAMP WITH TIME ZONE 列应映射到 VARCHAR(34) 列。上载时,MobiLink 服务器首先使用格式 YYYY-MM-DD HH:NN:SS.SSSSSS [+|-]HH:NN 将数据转换为字符串,然后将其应用到统一数据库。下载时,它会将数据从字符串转换为 TIMESTAMP WITH TIME ZONE。请确保统一数据库中的数据遵从此格式,否则下载将失败。 |
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 |
下表列出了 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 |
ST_GEOMETRY |
|
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 之间。 |
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |