SurrealDB中如何在array类型内定义指定结构的对象Schema?
创建SurrealDB SCHEMAFULL模式的表h
要创建符合要求的SCHEMAFULL表,你可以使用SurrealDB的DDL语句,明确定义表的模式以及items字段的数组对象结构:
-- 定义SCHEMAFULL模式的表h DEFINE TABLE h SCHEMAFULL; -- 定义items字段为包含指定结构对象的数组 DEFINE FIELD items ON h TYPE ARRAY<OBJECT { active: bool, key: string, value: string, description: string|null }>;
语句说明
DEFINE TABLE h SCHEMAFULL;:将表h设置为SCHEMAFULL模式,所有插入或更新的数据必须严格匹配定义的Schema,不符合的数据会被直接拒绝。ARRAY<OBJECT { ... }>:指定items是一个数组,数组中的每个元素必须是符合内部结构的对象:active: bool:属性值必须为布尔类型(true/false)key: string:属性值必须为字符串类型value: string:属性值必须为字符串类型description: string|null:属性值可以是字符串,也可以是null
验证示例
插入符合Schema的数据会成功执行:
INSERT INTO h { items: [ { active: true, key: "language", value: "zh-CN", description: "系统语言设置" }, { active: false, key: "auto_save", value: "disabled", description: null } ] };
如果尝试插入不符合Schema的数据(比如给active赋值字符串),SurrealDB会直接抛出错误,确保数据一致性。
内容的提问来源于stack exchange,提问作者W.A Rajinda
相关产品推荐
相关产品推荐

