如何使用 Cypher 执行 SQL Create Table as Select 的等效操作
对于传统的 SQL RDBMS,可以执行 create table as select
(即 CTAS),其目的是创建一个新表并将现有数据从原始表复制到新副本。如果您希望使用 Cypher 实现同样的功能,可以通过以下方式执行:
MATCH (n:Movie)
MERGE (m:New_Movie)
SET m=n;
以上操作会将所有 Movie
节点及其属性复制到一组带有 New_Movie
标签的新节点中。如果您有大量 Movie
节点,您可能不希望在单个事务中复制所有节点,例如,您可能希望使用 apoc.periodic.iterate
call apoc.periodic.iterate("MATCH (n:Movie) RETURN properties(n) as props", "CREATE (m:New_Movie) SET m = props",{});
与 CTAS 语句一样,此操作不会复制该标签上的任何底层 schema 索引或约束。此外,如果 Movie
节点具有附加标签,它们也不会被复制到 New_Movie
节点。
此页面有帮助吗?