You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EdgeDB中如何插入以保留字作为键的元组数据?

解决EdgeDB中保留字refresh导致的语法错误

refresh是EdgeDB的保留关键字,直接将其用作字段名会触发语法错误,相关代码及报错信息如下:

报错代码

query.data = {
  expire: query.expire,
  minimum: query.minimum,
  mname: query.mname,
  refresh: query.refresh,
  retry: query.retry,
  rname: query.rname,
  serial: query.serial
};

错误提示

EdgeQLSyntaxError: 意外的关键字'refresh'
   |
 6 |       data := ( expire := <std::float64>604800,minimum := <std::float64>86400,mname := "ns1.app.beachfront",refresh := <std::float64>3600,retry := <std::float64>1800,rname := "administrator.app.beachfront",serial := <std::float64>2023092801 )
   |                                                                                                             ^^^^^^^
提示:使用其他标识符或用反引号将名称引起来:`refresh`

解决方案

按照错误提示,用**反引号()**包裹保留字refresh`,让EdgeDB将其识别为普通标识符即可。

修改后的代码:

query.data = {
  expire: query.expire,
  minimum: query.minimum,
  mname: query.mname,
  `refresh`: query.refresh,
  retry: query.retry,
  rname: query.rname,
  serial: query.serial
};

对应的EdgeQL语句同步修改:

data := ( 
  expire := <std::float64>604800,
  minimum := <std::float64>86400,
  mname := "ns1.app.beachfront",
  `refresh` := <std::float64>3600,
  retry := <std::float64>1800,
  rname := "administrator.app.beachfront",
  serial := <std::float64>2023092801 
)

内容的提问来源于stack exchange,提问作者NetOperator Wibby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 16:47:58