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 之间。