gpt4 book ai didi

sql - 将现有表转换为 SQL 图形节点或边缘

转载 作者:行者123 更新时间:2023-12-02 04:23:26 25 4
gpt4 key购买 nike

使用已实现的外键的现有数据库,我想使用 SQL Server 2017 的 SQL Graph 新功能。首先,我想将一些现有表转换为 Node 或 Edge 表。进行这种迁移的最简单方法是什么?

最佳答案

https://argonsys.com/microsoft-cloud/library/graph-data-processing-with-sql-server-2017/

我可以将现有表更改为节点或边缘表吗?

不可以。在第一个版本中,不支持将现有关系表转换为节点或边缘表的 ALTER TABLE。用户可以创建节点表并使用 INSERT INTO ... SELECT FROM 将数据填充到节点表中。要从现有表填充边缘表,必须从节点表中获取正确的 $from_id 和 $to_id 值。

1)节点表:

您必须禁用外键。
How can foreign key constraints be temporarily disabled using T-SQL?
然后制作表的副本,删除它,将其重新创建为节点,插入数据,最后重新打开外键。

-- disable all constraints
EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"

SELECT *
INTO COPY_OF_REF_LOTS
FROM REF_LOTS;

DROP TABLE REF_LOTS;

CREATE TABLE REF_LOTS (ID INT PRIMARY KEY IDENTITY(1,1), myvalue varchar(100)) AS NODE;

INSERT INTO REF_LOTS
SELECT * FROM COPY_OF_REF_LOTS;

DROP TABLE COPY_OF_REF_LOTS;

-- enable all constraints
exec sp_MSforeachtable @command1="print '?'", @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"

2) 边表:

创建新的边缘表并通过从节点表中检索 $node_id 来填充它们,如 https://www.sqlshack.com/implement-graph-database-sql-server-2017/ 中所述。

关于sql - 将现有表转换为 SQL 图形节点或边缘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57588504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com