在此运行 完全在你的浏览器里运行,不上传、不登录
SQL 方言转换
在 MySQL、PostgreSQL、SQLite 之间转换 INSERT 与 CREATE TABLE 语句。
怎么用
- 把一条或多条 SQL 粘到左边 —— INSERT 与 CREATE TABLE 语句,多条用分号分隔。
- 选源方言,或保持自动检测:按反斜杠转义与反引号引号推断转义风格。
- 选目标方言:MySQL、PostgreSQL 或 SQLite。
- 右边读转换结果,下方读转换说明。凡是在目标方言里没有对应写法的子句,都会在这里逐条列名,不会静默删掉。
- 复制或下载结果,跑真实库之前先过一遍说明。
常见用法
- schema 迁到 PostgreSQL ——把带反引号标识符和 AUTO_INCREMENT 的 MySQL 导出改成双引号标识符和 SERIAL 列。
- 给测试库灌 SQLite 数据 —— 直接复用 MySQL 或 PostgreSQL 导出的 INSERT 脚本,不必逐条手改引号。
- 处理表选项 —— 一眼看清哪些 ENGINE、CHARSET、COLLATE 子句会消失,因为它们只存在于 MySQL。
- 学方言差异 —— 说明区就是一份「三种引擎真正不一样的子句」清单。
常见问题
问:哪些语句会被完整转换? 答:INSERT 语句(标识符引号、字符串转义、列清单与 VALUES 各行)和 CREATE TABLE 语句(标识符引号、AUTO_INCREMENT 转 SERIAL / BIGSERIAL / AUTOINCREMENT、MySQL 表选项、LIMIT m,n 转 LIMIT n OFFSET m)。其余语句做保守改写并附说明。
问:自动检测到底检测什么? 答:字符串字面量的转义约定:出现 \n、' 这类反斜杠转义按 MySQL 风格读,出现两个单引号翻倍按 PostgreSQL / SQLite 的标准风格读。文件里两种风格混用时,请手动指定源方言。
问:为什么有些子句原样保留而不转换? 答:像 ON DUPLICATE KEY UPDATE、ON UPDATE CURRENT_TIMESTAMP、UNSIGNED 这些子句在别的方言里没有一对一对应写法。转换器保留它们并在说明区列出,让你显式改写,而不是相信一个静默的猜测。
你的数据留在这台设备上
SQL 方言转换 完全在本地运行。你粘贴或拖入的一切都由你自己的浏览器处理,不会被传走。我们的服务器不保存任何东西——关掉标签页就没了。
你输入的内容不会发往服务器、不被记录,也不用于分析统计。首次加载之后即使断网,这个页面照样能用。