刷新 MySQL 命令行的数据而不退出并重新输入

Refreshing Data For MySQL Command Line Without Exiting and Re-Entering

在 Linux,我认为我的 MySQL 查询不知何故不起作用,因为查询不会显示输入 table 的数据量的任何进展。有没有一种方法可以在不退出并重新进入命令行的情况下刷新 MySQL 命令行可用的数据?

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

您看到的可能是长期 运行 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。)

link @JimmyB 在上面发表的关于 transaction isolation levels 的评论对阅读很有帮助。