Graph 如何在SAP HANA图形中创建多个顶点

Graph 如何在SAP HANA图形中创建多个顶点,graph,sap,hana,Graph,Sap,Hana,我正在尝试在SAP HANA中创建2个(多个)顶点,如- 为顶点项和数据集创建两个表 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, "DATAS

我正在尝试在SAP HANA中创建2个(多个)顶点,如-

为顶点项和数据集创建两个表

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)
);
并将边创建为引用

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)
);
现在,我想将两个顶点(数据集)与edge引用连接起来,如下所示

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";
但它在第二行抛出了异常

顶点表“希腊神话”。“数据集”键列“数据集ID”


是否可以在SAP HANA graph中创建多个顶点?如果是,那么正确的方法是什么。

这里有一个误解。
CREATE TABLE
语句中的
REFERENCES
子句与要表示的图形结构无关。 相反,它在两个表之间定义了一个外键约束

CREATE GRAPH WORKSPACE
命令仅接受一个
边表
和一个
顶点表
作为参数。 但是,您也可以在此处传入同义词视图

这样,您可以创建一个视图
“所有项目”
,如下所示:

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

这里有一个误解。
CREATE TABLE
语句中的
REFERENCES
子句与要表示的图形结构无关。 相反,它在两个表之间定义了一个外键约束

CREATE GRAPH WORKSPACE
命令仅接受一个
边表
和一个
顶点表
作为参数。 但是,您也可以在此处传入同义词视图

这样,您可以创建一个视图
“所有项目”
,如下所示:

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