Python Vertica,描述一下桌子

Python Vertica,描述一下桌子,python,vertica,Python,Vertica,我有一个vertica数据库,我需要描述一些表。在MySQL中,您使用描述表名。我知道在vertica它是\d table\u name。 我还需要抛出python,但当我进行查询时: cur.execute("\d table_name") 我遇到了这个问题: vertica_python.errors.VerticaSyntaxError: Severity: ERROR, Message: Syntax error at or near "\", Sqlstate: 42601, Pos

我有一个vertica数据库,我需要描述一些表。在MySQL中,您使用
描述表名
。我知道在vertica它是
\d table\u 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中是否有其他方法获取列和列类型?

查询失败的原因:

\d
命令是vsql的专用命令,例如,这不是可以通过ODBC或JDBC使用的有效SQL

你有3个选择。首先是您已经在评论中添加的内容:

SELECT * 
FROM   v_catalog.columns 
WHERE  table_schema='schema' 
       AND table_name='table' 
ORDER  BY ordinal_position;`
第二个选项是to,它将为您提供完整的create语句,包括投影:

SELECT export_objects('', 'schema.table');
第三个选项是to,它只提供表定义:

SELECT EXPORT_TABLES('', 'schema.table');
第一组双引号表示要在标准输出上打印输出,第二组是要导出的表(或架构或所有对象)。

有但最简单的方法如下:

/d table_name;
/dt tablw_name;

您可以使用\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;
选择列名称、表名称
从v_catalog.columns
其中列名称类似于“”
和表_架构类似于“”
按列名称排序;

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

cur.execute(r'\d table\u name')
?尝试了不同的方法。例如,在本例中:vertica_python.errors.VerticaSyntaxError:Severity:ERROR,Message:Syntax ERROR在“\”处或附近,Sqlstate:42601,Position:1,例程:base_yyerror,File:/scratch_a/release/vbuild/vertica/Parser/scan.l,第1004行,SQL:'\\d table_name'找到答案,如果要获取列和类型,您可以使用:从table_name='table_name'的列中选择*。您可以通过表_schema和其他参数进行选择。我第一次与vertica会面,觉得会很有趣。注意:在第三个选项中,
EXPORT\u TABLES