【发布时间】:2019-03-20 04:58:59
【问题描述】:
我在 Go 中有一个从 YAML 文件生成 SQL 脚本的工具。为了将生成的脚本失败的风险降到最低,我想通过 SQL 或 Go 应用程序进行类似“试运行”之类的操作。
我的第一个想法是使用 ROLLBACK 语句,但随后生成的脚本还将包含回滚而不是提交。
SQL 或 Go 是否提供类似的功能?
【问题讨论】:
-
不确定 mariadb 和 mysql,但是当使用带有 lib/pq 驱动程序的 postgres 时,您可以从查询字符串创建准备好的语句,如果查询包含无效的 sql,或者即使它有效但您指定不存在的表/列Prepare 将返回错误。请注意,如果您选择走这条路线,请确保关闭每个准备好的语句,如果您不打算以后重用。