我在Go中有一个工具,可以从YAML文件生成SQL脚本。为了最大程度地减少生成的脚本失败的风险,我想通过SQL或Go应用程序执行类似“空运行”的操作。
我的第一个想法是使用ROLLBACK
语句,但是随后生成的脚本还将包含回滚而不是提交。
SQL或Go是否提供类似的内容?
答案 0 :(得分:3)
您是否考虑过在*DB.Conn
提供的事务中运行“ Dry Run”语句?
db, err = sql.Open(...)
txn, err = db.BeginTx(...)
defer txn.Rollback
rows, err = txn.Query(...)