在不退出和重新进入的情况下刷新MySQL命令行数据

时间:2017-10-23 14:54:03

标签: mysql refresh

在Linux上,我认为我的MySQL查询在某种程度上不起作用,因为查询不会显示输入表中的数据量的任何进展。有没有办法在不退出并重新进入命令行的情况下刷新MySQL命令行可用的数据?

我一直在搜索,但到目前为止只看到正在运行mysql -e并将其放入 bash 循环中。我喜欢留在MySQL命令行中并运行其他命令,如describe tables

1 个答案:

答案 0 :(得分:1)

您所看到的可能是长时间REPEATABLE-READ交易的结果。在开始新事务之前,您只能看到在开始当前事务时提交的数据。

通常,mysql客户端以autocommit模式运行。也就是说,每个SQL语句都隐式启动并提交自己的事务。在此模式下,每次查询时都应始终查看当前数据。您显然没有使用自动提交模式。

您可以启用自动提交:

mysql> SET SESSION autocommit=1;

或者您可以在方便时开始新的交易:

mysql> BEGIN;

另一种选择是在READ-COMMITTED交易中运作。这意味着您的交易无需在开始交易时保留可重复的数据视图。它始终会查看最近提交的更改,即使您的交易正在进行中也是如此。

mysql> SET SESSION tx_isolation='READ-COMMITTED';
mysql> BEGIN;

(注意:MySQL 8.0.3将tx_isolation的名称更改为transaction_isolation。)

@JimmyB在上面关于transaction isolation levels的评论中发布的链接是有用的阅读。