Vertica,描述表

时间:2014-10-16 07:50:59

标签: python vertica

我有一个vertica数据库,我需要描述一些表。在MySQL中,您使用describe table_name。我知道在它的\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 :(得分:10)

为什么查询失败:

\d命令是vsql的特异性,这不是可以通过ODBC或JDBC使用的有效SQL。

您有3个选项。首先是你已经发表评论的那个:

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

第二个选项是export the object,它将为您提供完整的创建语句,包括投影:

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

第三个选项是export the table,它只提供表定义:

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

第一组双引号表示在STDOUT上打印输出,第二组是要导出的表(或模式或所有对象)。

答案 1 :(得分:0)

many ways to describe tables in vertica,但最简单的是这样:

/d table_name;
/dt tablw_name;

答案 2 :(得分: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;

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