SurrealDB创建author记录后查询返回0结果,如何正确查询?
解决SurrealDB查询不到已创建记录的问题
以下是几种排查和解决的方法:
1. 确认操作的命名空间与数据库一致
SurrealDB 基于命名空间(Namespace)和数据库(Database)实现多租户隔离,创建记录和查询必须在同一个环境下执行。
- 执行创建语句前,需先通过
USE <命名空间> <数据库>;指定环境,例如:USE testns testdb; - 查询前也要确保处于相同的命名空间和数据库中,避免跨环境操作导致查不到数据。
2. 验证单条记录是否存在
先直接查询你创建的特定记录,确认数据是否真的写入成功:
SELECT * FROM author:shivam;
如果这条语句能返回结果,说明记录已存在,问题出在全量查询的环境或语法上;如果也返回空,说明创建语句可能未成功执行,检查创建时是否有报错(当前语句中string::join(' ', name.first, name.last)是合法的,创建时可引用同一条记录的其他字段)。
3. 检查权限设置
如果使用了自定义用户权限,需确认当前用户拥有author表的读取权限。本地开发环境默认使用根用户(无权限限制),但如果是生产环境或自定义权限配置,可通过以下语句查看权限:
INFO FOR ROLE <你的角色名>;
4. 尝试使用全限定查询
如果上述方法都无效,可尝试使用全限定名称查询,明确指定记录类型:
SELECT * FROM type::table('author');
内容的提问来源于stack exchange,提问作者Shivam Sahil
相关产品推荐
相关产品推荐

