我能否在Query中获取顶点的primary_id的值?

我能否在Query中获取顶点的primary_id的值?比如我尝试了如下的Query:

CREATE QUERY populate_id_fields() FOR GRAPH oc { 
  S = {entity.*};
    
  UPDATE s FROM S:s
  SET s.activerecord_id = str_to_int(s.id);
    
}

但报了如下的错:“primary_id not usable in the query body”。是否有变通的方法实现它?
谢谢!

默认情况下,由于没有设置过primary_id_as_attribute,primary_id是不能直接使用的。
primary_id_as_attribute是用来设置是否把primary_id作为属性对待的,如果设置为true,则可直接访问primary_id;否则不能访问。默认情况为false。
要启用该功能,有两个方法:

  1. (推荐使用)创建点时,在末尾加上如下的代码:WITH primary_id_as_attribute=“true”
    详参:
    https://docs.tigergraph.com/dev/gsql-ref/ddl-and-loading/defining-a-graph-schema#primary_id-and-with-primary_id_as_attribute

  2. 在GraphStudio中定义顶点时,勾上如下的勾选框。
    image

需要注意的是:要使用这两种的任一种,系统都会删除这类顶点的数据(包括这类顶点指向的边)。