🔁

SQL 方言互转 后端生成 · 免登录

建表语句与查询语句在 MySQL / Oracle / PostgreSQL / SQL Server / SQLite 之间互转

输入 SQL(建表语句 / 查询语句)
转换结果
源方言: 目标方言:

SQL 方言互转工具使用说明

粘贴建表语句(CREATE TABLE)或查询语句(SELECT / INSERT / UPDATE / DELETE),选择源方言与目标方言,一键完成 MySQL、PostgreSQL、Oracle、SQL Server、SQLite 五种数据库之间的语法转换。转换结果附「需人工复核」警告清单,覆盖工具无法自动处理的索引、外键与专有语法。

类型映射:DATETIME↔TIMESTAMP、TINYINT↔NUMBER(3)、TINYINT(1)↔NUMBER(1)/BIT/boolean、TEXT↔CLOB、BIGINT↔NUMBER(19)、VARCHAR↔VARCHAR2/NVARCHAR、BLOB↔VARBINARY(MAX)/BYTEA 等,长度与精度参数自动保留;datetime(6) 的小数秒精度同步转换。

自增主键:MySQL AUTO_INCREMENT、PostgreSQL serial / GENERATED AS IDENTITY、Oracle GENERATED BY DEFAULT AS IDENTITY、SQL Server IDENTITY(1,1)、SQLite INTEGER PRIMARY KEY AUTOINCREMENT 之间自动互换。

注释迁移:MySQL 内联 COMMENT、PostgreSQL/Oracle 的 COMMENT ON TABLE/COLUMN、SQL Server 的 sp_addextendedproperty 扩展属性双向识别与生成。

查询改写:NOW()/SYSDATE/GETDATE() 等时间函数、IFNULL/NVL/ISNULL/COALESCE 空值函数、LIMIT n / LIMIT o,n ↔ TOP n ↔ FETCH FIRST / OFFSET FETCH 分页语法自动映射;CONCAT 多参数转 Oracle 时改写为 || 连接;MySQL 多行 VALUES 转 Oracle 时改写为 INSERT ALL。

数据库迁移实战(DATETIME 精度、TINYINT(1) 语义、AUTO_INCREMENT 缺失三大坑)见 MySQL 迁 Oracle 类型映射踩坑实录。转换后的建表语句可继续用 SQL 转 Java 实体 或 MyBatis Mapper 生成器 生成代码;Oracle 专有语法可查 Oracle 命令速查。

相关工具