Vertica,描述表格

5 投票
3 回答
15184 浏览
提问于 2025-04-27 21:29

我有一个Vertica数据库,我需要查看一些表的结构。在MySQL中,你可以用 describe table_name 来查看。而我知道在Vertica中是用 \d table_name

我还想通过Python来实现这个,但当我执行查询时:

cur.execute("\d table_name")

我遇到了这个问题:

vertica_python.errors.VerticaSyntaxError: Severity: ERROR, Message: Syntax error at or near "\", Sqlstate: 42601, Position: 1, Routine: base_yyerror, File: /scratch_a/release/vbuild/vertica/Parser/scan.l, Line: 1004, SQL: '\\d table_name'

有没有其他方法可以在Vertica中获取列和列的类型呢?

暂无标签

3 个回答

0

你可以使用\d,或者参考下面的字典表来获取相关信息。

select column_name, table_name
from v_catalog.columns
where column_name ilike '<column_name>'
and table_schema ilike '<table_name>'
order by column_name;

你还可以根据需要的信息添加更多的属性。

0

在Vertica中,有很多种方法可以描述表格,但最简单的方法是这样的:

\d table_name;
\dt tablw_name;
13

为什么你的查询会失败:

\d这个命令是vsql特有的,这不是你可以通过ODBC或JDBC等方式使用的有效SQL。

你有三种选择。首先是你已经在评论中提到的那个:

SELECT * 
FROM   v_catalog.columns 
WHERE  table_schema='schema' 
       AND table_name='table' 
ORDER  BY ordinal_position;`

第二个选择是导出对象,这样你可以得到完整的创建语句,包括投影信息:

SELECT export_objects('', 'schema.table');

第三个选择是导出表,这只会提供表的定义:

SELECT EXPORT_TABLES('', 'schema.table');

第一个双引号表示将输出打印到标准输出(STDOUT),第二个双引号是你想要导出的表(或者是模式,或者是所有对象)。

撰写回答