# adays_SQLShift **Repository Path**: adays906/adays_-sqlshift ## Basic Information - **Project Name**: adays_SQLShift - **Description**: sql脚本转换工具 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-04-07 - **Last Updated**: 2026-04-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SQL 多数据库语句转换工具 **Project Name:** `SQLShift` 一个纯前端、本地可直接打开使用的 SQL 转换页面,支持常见数据库方言之间的语句转换、格式化和编辑器化操作。 当前核心文件:`index.html` 网站图标:`favicon.ico`(浏览器默认使用;`favicon.svg` 为可选矢量备用)。若需重新生成 ICO,在项目根目录执行 `python generate_favicon.py`(需已安装 Pillow)。 ## 功能特性 - 支持数据库类型: - PostgreSQL - MySQL - SQL Server - Oracle - SQLite - SQL 编辑体验: - Ace 编辑器(语法高亮、行号、自动换行、查找/替换、撤销/重做) - 输入区与结果区分离展示 - 行数/字符数与光标位置状态显示 - SQL 处理能力: - 方言转换(标识符引号、部分函数与分页语法) - SQL 格式化(输入/结果均可格式化) - 优化预览与转换结果:每条语句单行展示,语句之间仅换行,并以英文分号结尾 - 注释与字符串保护,降低误替换风险 - 数据健壮性增强: - 布尔转换可配置(关闭/智能/强制) - 布尔列白名单 - 冲突处理(PostgreSQL/MySQL 的忽略或 upsert 策略) - 常用工具: - 复制结果 - 下载 `.sql` - 结果回填输入 - 主题切换(浅色/深色) ## 快速开始 1. 直接双击打开 `index.html`(或在浏览器中打开)。 2. 选择源数据库与目标数据库。 3. 在输入区粘贴 SQL。 4. 点击 `执行转换`。 5. 在结果区复制或下载 SQL 并执行。 ## 关键配置说明 ### 1) 布尔转换 - `关闭`(默认推荐) 不进行 `0/1 -> true/false`,可避免整数字段被误转布尔。 - `智能(仅白名单/安全命名)` 仅对“安全命名字段”或白名单字段转换。 - `强制(全局 0/1 ↔ true/false)` 风险最高,仅在明确知道字段类型时使用。 建议:跨库批量迁移时优先用 `关闭`,按实际表结构再精确开启。 ### 2) 冲突处理 - PostgreSQL - `ON CONFLICT DO NOTHING` - `ON CONFLICT DO UPDATE` - MySQL - `INSERT IGNORE` - `ON DUPLICATE KEY UPDATE` `冲突列`请填写唯一键/主键列(如 `id`、`code` 或复合列)。 > 若执行时报 `duplicate key value violates unique constraint`,请优先使用该项。 ## 快捷键 - `Ctrl+Enter`:执行转换 - `Ctrl+Shift+F`:格式化(在对应编辑器中触发) ## 注意事项 - 本工具基于规则转换,不是完整 SQL 语法解析器。 - 极复杂语句(嵌套表达式、数据库专有函数、触发器/过程语法)建议人工复核。 - 建议先在测试库执行转换结果,再投产。 - 结果报错常见原因: - 目标库约束冲突(重复主键/唯一键) - 源/目标字段类型不一致(需按表结构调整布尔或数字字段) ## 后续可扩展方向 - 导入/导出规则模板 - 按表结构元数据做类型驱动转换 - 批量文件转换(多 SQL 文件) - 执行前静态检查与风险提示 --- 如果你希望,我可以继续补一版: - 中英双语 README - 变更日志(CHANGELOG) - 使用示例(MySQL -> PostgreSQL、PostgreSQL -> MySQL)专区