识别 SQL 方言
SQL 有共同基础,但不同数据库系统在函数、数据类型、日期处理、标识符和特殊命令方面各不相同。PostgreSQL 中有效的语句可能包含 SQLite 无法识别的语法或函数。
IaGenify 将 SQL Database 说明为 SQLite 方言,并建议用 `?` 占位符和 `params` 传递值。
例如,SQLite 通常使用 TEXT 或 INTEGER 存储日期,并提供 `date()`、`datetime()` 和 `strftime()` 等函数。字符串连接使用 `||`,结果分页可以使用 `LIMIT` 和 `OFFSET`。
请核对具体需要的功能,不要假设熟悉的命令在所有数据库引擎中行为相同。
安全地调整并测试查询
先使用文档所述方言执行读取查询,并检查返回行。迁移其他数据库的查询时,明确替换专用日期函数、类型转换或语法,并确认当前架构如何存储各项数据。参数用于传递数据值,不能代替表名或列名。
工具还会拒绝 ATTACH、DETACH 和 VACUUM INTO 等命令。如果迁移或维护依赖不支持的命令,请使用受支持的导出、导入或管理方式,而不是反复改写同一语句。
修改架构或数据前,请保留重要数据的副本。