如何在 SAP HANA Graph 中创建多个顶点
How to create multiple vertex in SAP HANA Graph
我正在尝试在 SAP HANA 中创建 2 个(多个)顶点,例如 -
为顶点ITEM和DATASET
创建两个table
CREATE COLUMN TABLE "GREEK_MYTHOLOGY"."ITEM" (
"ITEM_ID" VARCHAR(100) PRIMARY KEY,
"ITEM_NAME" VARCHAR(100)
);
CREATE COLUMN TABLE "GREEK_MYTHOLOGY"."DATASET" (
"DATASET_ID" VARCHAR(100) PRIMARY KEY,
"DATASET_NAME" VARCHAR(100)
);
并创建边作为 REFERENCES
CREATE COLUMN TABLE "GREEK_MYTHOLOGY"."REFERENCES" (
"REF_ID" INT UNIQUE NOT NULL,
"SOURCE" VARCHAR(100) NOT NULL
REFERENCES "GREEK_MYTHOLOGY"."ITEM" ("ITEM_ID")
ON UPDATE CASCADE ON DELETE CASCADE,
"TARGET" VARCHAR(100) NOT NULL
REFERENCES "GREEK_MYTHOLOGY"."DATASET" ("DATASET_ID")
ON UPDATE CASCADE ON DELETE CASCADE,
"TYPE" VARCHAR(100)
);
现在我想连接两个顶点(ITEM 和 DATASET)和边 REFERENCES 喜欢下面
CREATE GRAPH WORKSPACE "GREEK_MYTHOLOGY"."GRAPH"
EDGE TABLE "GREEK_MYTHOLOGY"."DATASET"
SOURCE COLUMN "SOURCE"
TARGET COLUMN "TARGET"
VERTEX TABLE "GREEK_MYTHOLOGY"."ITEM" KEY COLUMN "ITEM_ID"
VERTEX TABLE "GREEK_MYTHOLOGY"."DATASET"KEY COLUMN "DATASET_ID"
KEY COLUMN "REF_ID";
但是它在第
行抛出异常
顶点 TABLE "GREEK_MYTHOLOGY"."DATASET"关键列 "DATASET_ID"
sql syntax error: incorrect syntax near "VERTEX": line 6 col 1 (at pos 200)
是否可以在 SAP HANA 图形中创建多个顶点?如果是,那么正确的方法是什么。
这里有个误会。 CREATE TABLE
语句中的 REFERENCES
子句与你要表示的图结构无关。
相反,它在两个表之间定义了一个外键约束。
CREATE GRAPH WORKSPACE
命令只接受一个EDGE TABLE
和一个VERTEX TABLE
作为参数。
不过,你也可以在这里传入 synonyms 或者 views
这样,您就可以像这样创建视图 "ALL_ITEMS"
:
CREATE VIEW "GREEK_MYTHOLOGY"."ALL_ITEMS" as
SELECT "ITEM_ID" as "ID", "ITEM_NAME" as "NAME" FROM "GREEK_MYTHOLOGY"."ITEM"
UNION
SELECT "DATASET_ID" as "ID", "DATASET_NAME" as "NAME" FROM "GREEK_MYTHOLOGY"."DATASET";
然后引用这个视图:
CREATE GRAPH WORKSPACE "GREEK_MYTHOLOGY"."GRAPH"
EDGE TABLE "GREEK_MYTHOLOGY"."DATASET"
SOURCE COLUMN "SOURCE"
TARGET COLUMN "TARGET"
VERTEX TABLE "GREEK_MYTHOLOGY"."ALL_ITEMS"
KEY COLUMN "NAME";
可以使用这种方法,但您现在必须确保 "NAME"
值在两个表中都是唯一的,而不是 NULL
。
我正在尝试在 SAP HANA 中创建 2 个(多个)顶点,例如 -
为顶点ITEM和DATASET
创建两个tableCREATE COLUMN TABLE "GREEK_MYTHOLOGY"."ITEM" (
"ITEM_ID" VARCHAR(100) PRIMARY KEY,
"ITEM_NAME" VARCHAR(100)
);
CREATE COLUMN TABLE "GREEK_MYTHOLOGY"."DATASET" (
"DATASET_ID" VARCHAR(100) PRIMARY KEY,
"DATASET_NAME" VARCHAR(100)
);
并创建边作为 REFERENCES
CREATE COLUMN TABLE "GREEK_MYTHOLOGY"."REFERENCES" (
"REF_ID" INT UNIQUE NOT NULL,
"SOURCE" VARCHAR(100) NOT NULL
REFERENCES "GREEK_MYTHOLOGY"."ITEM" ("ITEM_ID")
ON UPDATE CASCADE ON DELETE CASCADE,
"TARGET" VARCHAR(100) NOT NULL
REFERENCES "GREEK_MYTHOLOGY"."DATASET" ("DATASET_ID")
ON UPDATE CASCADE ON DELETE CASCADE,
"TYPE" VARCHAR(100)
);
现在我想连接两个顶点(ITEM 和 DATASET)和边 REFERENCES 喜欢下面
CREATE GRAPH WORKSPACE "GREEK_MYTHOLOGY"."GRAPH"
EDGE TABLE "GREEK_MYTHOLOGY"."DATASET"
SOURCE COLUMN "SOURCE"
TARGET COLUMN "TARGET"
VERTEX TABLE "GREEK_MYTHOLOGY"."ITEM" KEY COLUMN "ITEM_ID"
VERTEX TABLE "GREEK_MYTHOLOGY"."DATASET"KEY COLUMN "DATASET_ID"
KEY COLUMN "REF_ID";
但是它在第
行抛出异常顶点 TABLE "GREEK_MYTHOLOGY"."DATASET"关键列 "DATASET_ID"
sql syntax error: incorrect syntax near "VERTEX": line 6 col 1 (at pos 200)
是否可以在 SAP HANA 图形中创建多个顶点?如果是,那么正确的方法是什么。
这里有个误会。 CREATE TABLE
语句中的 REFERENCES
子句与你要表示的图结构无关。
相反,它在两个表之间定义了一个外键约束。
CREATE GRAPH WORKSPACE
命令只接受一个EDGE TABLE
和一个VERTEX TABLE
作为参数。
不过,你也可以在这里传入 synonyms 或者 views
这样,您就可以像这样创建视图 "ALL_ITEMS"
:
CREATE VIEW "GREEK_MYTHOLOGY"."ALL_ITEMS" as
SELECT "ITEM_ID" as "ID", "ITEM_NAME" as "NAME" FROM "GREEK_MYTHOLOGY"."ITEM"
UNION
SELECT "DATASET_ID" as "ID", "DATASET_NAME" as "NAME" FROM "GREEK_MYTHOLOGY"."DATASET";
然后引用这个视图:
CREATE GRAPH WORKSPACE "GREEK_MYTHOLOGY"."GRAPH"
EDGE TABLE "GREEK_MYTHOLOGY"."DATASET"
SOURCE COLUMN "SOURCE"
TARGET COLUMN "TARGET"
VERTEX TABLE "GREEK_MYTHOLOGY"."ALL_ITEMS"
KEY COLUMN "NAME";
可以使用这种方法,但您现在必须确保 "NAME"
值在两个表中都是唯一的,而不是 NULL
。