我在这里搜索找不到任何相关信息。
我在工作时在命令行上使用 mysql,并且我使用相当大的表,所以我设置了 mysql 寻呼机,如果我运行查询,返回 1000 个结果,则允许更易读的结果。我使用下面的命令来设置寻呼机。
\P less -Sin
这符合我的需要,但让我想知道 mysql 在命令行上是否使用更多的寻呼机样式。
MySQL 客户端只是将其输出传递给您使用
\P
(对于“Pager”)指定的任何命令。
-Sin
是程序less
的命令行开关。来自 man less:
-i 导致搜索忽略大小写
-n 抑制行号
-S 导致比屏幕宽度长的行被截断而不是折叠。
mysql> pager less
PAGER set to 'less'
您可能想尝试pspg: 专为处理表格而设计的 Unix 寻呼机。专为 PostgreSQL 设计,但也支持 MySQL.
主要目标
可以冻结前几行,前几列
可以使用花哨的颜色——比如 mcview 或 FoxPro
在行动中:
这篇文章很旧,但仍然很有帮助。
您可以将寻呼机设置为任何您想要的,包括一个脚本,该脚本在将其反馈给您之前解析所有输出。那里的示例包括使用附加工具使
EXPLAIN
输出更具可读性。
另请注意,要关闭此功能并返回正常标准输出,命令为
nopager
。
如果你不喜欢
less
你可以使用more
:)
\P more
使用寻呼机
mysql -u root --database=test
MariaDB[test]> pager less -SFX
DESCRIBE Alerts;
输出
+----------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+--------------+------+-----+---------+----------------+
| id_alert | bigint(20) | NO | PRI | NULL | auto_increment |
| id_importance_choice | varchar(255) | NO | | NULL | |
| score | varchar(255) | NO | | NULL | |
| level | varchar(255) | NO | | NULL | |
| users | longtext | NO | | NULL | |
| createdAt | timestamp | YES | | NULL | |
| updatedAt | timestamp | YES | | NULL | |
| deletedAt | timestamp | YES | | NULL | |
+----------------------+--------------+------+-----+---------+----------------+
可恶的寻呼机
MariaDB[test]> pager more