如何在 Redshift 中查询架构信息?
How to query the schema info in Redshift?
我收到以下错误:
ERROR: Specified types or functions (one per INFO message) not supported on Redshift tables.
我明白这是因为我只是想使用领导节点功能,但是有其他方法可以做同样的事情吗?
我在 Redshift 数据库上的 Amazon Data Pipeline 中 运行 这个。
CREATE TABLE "schema_n"."temp_variable"
AS
SELECT CASE WHEN (NOT EXISTS(SELECT 1 FROM PG_TABLE_DEF pgtd WHERE schemaname = 'schema_xyz' AND tablename = 'table_xyz')) OR (DATE_PART('dow', CURRENT_DATE) = 0)
THEN '2017-01-01'::DATE
ELSE CURRENT_DATE - 11
END AS "date_import";
我也试过:
CREATE TABLE "schema_n"."temp_variable"
AS
SELECT CASE WHEN (NOT EXISTS(SELECT * FROM information_schema.tables WHERE table_schema = 'schema_xyz' AND table_name = 'table_xyz')) OR (DATE_PART('dow', CURRENT_DATE) = 0)
THEN '2017-01-01'::DATE
ELSE CURRENT_DATE - 11
END AS "date_import";
基本上我正在尝试执行以下操作:
如果 table_xyz 不存在或者如果是星期天,return '2017-01-01' 否则 return 今天 - 11 天。
无论我尝试什么,我总是收到同样的错误:
ERROR: Specified types or functions (one per INFO message) not supported on Redshift tables.
最后,管道中唯一可行的方法是使用 svv_table_info table。
CREATE TABLE "schema_n"."temp_variable" (
"date_import" DATE;
INSERT INTO "schema_n"."temp_variable"
SELECT
CASE WHEN (NOT EXISTS(SELECT 1 FROM svv_table_info WHERE "schema" = 'schema_xyz' AND "table" = 'table_xyz')) OR (DATE_PART('dow', CURRENT_DATE) = 0)
THEN '2017-01-01'::DATE
ELSE CURRENT_DATE - 11
END AS "date_import";
我收到以下错误:
ERROR: Specified types or functions (one per INFO message) not supported on Redshift tables.
我明白这是因为我只是想使用领导节点功能,但是有其他方法可以做同样的事情吗?
我在 Redshift 数据库上的 Amazon Data Pipeline 中 运行 这个。
CREATE TABLE "schema_n"."temp_variable"
AS
SELECT CASE WHEN (NOT EXISTS(SELECT 1 FROM PG_TABLE_DEF pgtd WHERE schemaname = 'schema_xyz' AND tablename = 'table_xyz')) OR (DATE_PART('dow', CURRENT_DATE) = 0)
THEN '2017-01-01'::DATE
ELSE CURRENT_DATE - 11
END AS "date_import";
我也试过:
CREATE TABLE "schema_n"."temp_variable"
AS
SELECT CASE WHEN (NOT EXISTS(SELECT * FROM information_schema.tables WHERE table_schema = 'schema_xyz' AND table_name = 'table_xyz')) OR (DATE_PART('dow', CURRENT_DATE) = 0)
THEN '2017-01-01'::DATE
ELSE CURRENT_DATE - 11
END AS "date_import";
基本上我正在尝试执行以下操作:
如果 table_xyz 不存在或者如果是星期天,return '2017-01-01' 否则 return 今天 - 11 天。
无论我尝试什么,我总是收到同样的错误:
ERROR: Specified types or functions (one per INFO message) not supported on Redshift tables.
最后,管道中唯一可行的方法是使用 svv_table_info table。
CREATE TABLE "schema_n"."temp_variable" (
"date_import" DATE;
INSERT INTO "schema_n"."temp_variable"
SELECT
CASE WHEN (NOT EXISTS(SELECT 1 FROM svv_table_info WHERE "schema" = 'schema_xyz' AND "table" = 'table_xyz')) OR (DATE_PART('dow', CURRENT_DATE) = 0)
THEN '2017-01-01'::DATE
ELSE CURRENT_DATE - 11
END AS "date_import";