我需要为MySQL编写安装脚本(通常使用mysql控制台中的“源[文件]”运行),该脚本部分取决于现有数据,并且环境存在差异,这意味着有时脚本确实会失败。一种常见的情况是带有选择(查找ID)的select的’SET’语句无法找到任何内容。控制台将值设置为NULL。在这种情况下,我希望脚本失败;我听说这可以通过引发一个错误(与其他数据库一起完成)来完成。但是,似乎MySQL没有办法做到这一点。
在这种情况下是否有好的方法可以强制失败?现在看来,当插入尝试使用null时,更新将失败,但是即使这样做也不会终止脚本本身。理想情况下,它只会失败并在遇到问题时终止。
我认为您遇到的是MySQL控制台的局限性。给定一个语句列表,MySQL控制台将执行每个语句,而不会产生任何错误。即使您实现了前面的注释中提到的一些错误提示建议,当遇到这样的错误时,MySQL控制台也不会停止执行。
我假设您没有资源将脚本语言应用于可以为您执行SQL并处理错误的问题。我认为在这种情况下,您只需要比MySQL控制台更强大的工具。
如果我正确理解了您的问题,则MySQL Administrator可以满足您的需求。如果您设置MySQL连接并连接到数据库,则可以从“工具”菜单中使用两个工具。可以使用普通的MySQL控制台,但也可以使用MySQL查询浏览器。
如果打开查询浏览器,您将获得MySQL数据库的不错的GUI视图。File-> Open Script打开您的SQL脚本,然后使用Execute按钮。
您会得到一个不错的进度条,更重要的是从进度条中得知,如果查询失败,脚本执行将暂停并突出显示失败的查询。您可以选择跳过它并继续操作,甚至可以手动修改数据并从脚本更远的其他地方启动。
一旦发现并尝试使用Administrator,我几乎立即放弃了MySQL控制台。