如何在 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 语句类似,这不会复制该标签上的任何底层模式索引或约束。此外,如果 Movie
节点具有其他标签,则它们不会复制到 New_Movie
节点。
此页面是否有帮助?