如何在mysql客户机中强制一个很长的脚本在出错时快速退出,而不让它挂起几个小时

u1ehiz5o  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(127)

我有一个非常长的sql脚本,大约有250000个更新。
在linux中,我通过管道将其传输到mysql客户机来运行它。现在我有三次碰到由脚本生成方式引起的sql错误。

cat updates.sql | mysql -h kkwea1sprageyxq.poopopakte0b2.pu-west-1.rds.amazonaws.com \
    -u mama_ --disable-reconnect --max-allowed-packet=536M \
    --default-character-set=cp1250 --skip-column-names -D mydb > update.log

当出现错误时,mysql客户机似乎会挂起,通常会挂几个小时,然后才会出错。
我可以将其设置为忽略错误,但我想知道是否可以在mysql客户机的命令行中添加一个标志,以便在发生sql错误后更快地出错。
我可以看到mysql的几个潜在的有趣的命令行标志,但是我发现它们的描述是模棱两可的。
我的脚本运行在自动提交模式关闭,与 COMMIT 每25个语句更新一次命令。我有预感,它的错误更快,当我使用自动提交模式上,这显然是可取的,如果有一个错误。
下面是update语句的一个示例,以防它有所帮助:

UPDATE data SET value = 0.9234 WHERE fId = 47616 AND modDate = '2018-09-24'  AND valueDate = '2007-09-01'  AND last_updated < '2018-10-01';

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题