首页 > 解决方案 > mariadb 输出中的破折号太多

问题描述

我在 Solus OS 上使用 mariadb 服务器。mariadb 命令的输出会打印许多额外的符号。

相同的命令在运行 mysql 的 Windows 操作系统上提供了完美的输出。

desc class,其中“类”是我的数据库输出中的一个表:(见下图)

'desc class' 的输出

此输出之前有许多行相同的符号。

输出show databases

+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Database                                                                                                                                                                                         |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| information_schema                                                                                                                                                                               |
| mysql                                                                                                                                                                                            |
| performance_schema                                                                                                                                                                               |
| snehit                                                                                                                                                                                           |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4 rows in set (0.000 sec)

可以看到输出了很多破折号

我可以使用\G后缀垂直显示输出。当我运行desc class \G时,输出是:

*************************** 1. row ***************************
  Field: name
   Type: varchar(30)
   Null: NO
    Key: 
Default: NULL
  Extra: 
*************************** 2. row ***************************
  Field: class_id
   Type: int(10) unsigned
   Null: NO
    Key: PRI
Default: NULL
  Extra: auto_increment
2 rows in set (0.001 sec)

但是,我想以水平表格样式显示输出,正如我所提到的,输出的破折号太多,这使得输出不可读。

那么,如何解决问题以删除输出中多余的破折号以使其可读?

编辑: MySQL command line formatting with UTF8有一个相关问题

但是,该问题涉及特殊字符的错误输出。我的问题涉及输出的破折号过多

标签: mysqlmariadb

解决方案


计划 A:向上滚动。有趣的东西就在那里。

计划 B:代替;,使用\G

问题是什么?您会看到围绕结果集绘制的“框”。然而,有些列太宽了,以至于它包裹起来,甚至包裹了很多次。

更具体地说,不要使用desc tablename;,使用SHOW CREATE TABLE tablename\G——它会更具描述性。

的文本CREATE TABLE是单列,但嵌入了行终止符(如果您使用多行)。 mysql将表定义视为单个非常宽的列。但是“终端”正在识别行终止符并很好地显示它。


推荐阅读