繁体   English   中英

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

[英]How to create multiple vertex in SAP HANA Graph

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

为顶点ITEMDATASET创建两个表

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)
);

现在我想将两个顶点( ITEMDATASET )都与如下边参考连接

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";

但是它会抛出异常

VERTEX 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作为参数。 但是,您也可以在此处传递同义词视图

这样,您可以创建一个视图"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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM