BUILD_FLEXTABLE_VIEW
创建或重新创建默认或用户定义键表的视图,忽略任何空键。
注意
如果密钥的长度超过 65,000,Vertica 会截断该密钥。这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
BUILD_FLEXTABLE_VIEW ('[[database.]schema.]flex-table'
[ [,'view-name'] [,'user-keys-table'] ])
参数
-
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。- flex-table
- 弹性表名称。默认情况下,该函数使用关联的
flex_table_keys
表的当前内容构建或重建输入表的视图。 - view-name
- 自定义视图名称。使用此选项可以用您指定的名称构建 flex-table 的新视图。
- user-keys-table
- 要从中创建视图的键表的名称。如果从 Flex 表(而不是
flex_table_keys
默认表)映射数据创建一个自定义键表,则使用此选项。函数从user_keys
中(而不是从flex_table_keys
中)的键构建视图。
示例
下面的示例显示如何用 1、2 或 3 实参调用 BUILD_FLEXTABLE_VIEW。
要创建或重新创建一个默认视图:
-
使用输入 Flex 表调用函数:
=> SELECT BUILD_FLEXTABLE_VIEW('darkdata'); build_flextable_view ----------------------------------------------------- The view public.darkdata_view is ready for querying (1 row)
函数从
darkdata
_keys 表创建具有默认名称 (darkdata_view
) 的视图。 -
从新视图或更新视图查询键名:
=> SELECT "user.id" FROM darkdata_view; user.id ----------- 340857907 727774963 390498773 288187825 164464905 125434448 601328899 352494946 (12 rows)
要使用自定义名称创建或重建视图:
-
用两个实参、一个输入弹性表
darkdata
以及要创建的视图名称dd_view
调用函数:=> SELECT BUILD_FLEXTABLE_VIEW('darkdata', 'dd_view'); build_flextable_view ----------------------------------------------- The view public.dd_view is ready for querying (1 row)
-
从新视图或更新视图 (
user.lang
) 查询键名 (dd_view
):=> SELECT "user.lang" FROM dd_view; user.lang ----------- tr en es en en it es en (12 rows)
要使用 BUILD_FLEXTABLE_VIEW 从自定义键表创建一个视图,此自定义表必须具有与默认表 (darkdata_keys
) 相同的架构和表定义。使用下面三种方法中的任何一种创建一个自定义键表:
-
使用弹性表 (
darkdata_keys
) 的默认键表中的所有键创建一个柱状表:=> CREATE TABLE new_darkdata_keys AS SELECT * FROMdarkdata_keys; CREATE TABLE
-
从弹性表 (
LIMIT 0
) 的默认键表创建一个不含内容的柱状表 (darkdata_keys
):=> CREATE TABLE new_darkdata_keys AS SELECT * FROM darkdata_keys LIMIT 0; CREATE TABLE kdb=> SELECT * FROM new_darkdata_keys; key_name | frequency | data_type_guess ----------+-----------+----------------- (0 rows)
-
从默认键表创建一个不含内容的柱状表 (
LIMIT 0
),并将两个值 ('user.lang
', 'user.name
') 插入key_name
列:=> CREATE TABLE dd_keys AS SELECT * FROM darkdata_keys limit 0; CREATE TABLE => INSERT INTO dd_keys (key_name) values ('user.lang'); OUTPUT -------- 1 (1 row) => INSERT INTO dd_keys (key_name) values ('user.name'); OUTPUT -------- 1 (1 row) => SELECT * FROM dd_keys; key_name | frequency | data_type_guess -----------+-----------+----------------- user.lang | | user.name | | (2 rows)
创建一个自定义键表后,用所有实参(输入 Flex 表、新视图名称、自定义键表)调用 BUILD_FLEXTABLE_VIEW:
=> SELECT BUILD_FLEXTABLE_VIEW('darkdata', 'dd_view', 'dd_keys');
build_flextable_view
-----------------------------------------------
The view public.dd_view is ready for querying
(1 row)
查询新视图:
=> SELECT * FROM dd_view;