📊 定义表

使用 #[spacetimedb::table] 宏定义表:

#[spacetimedb::table(accessor = messages, public)]
pub struct Message {
#[primary_key]
#[auto_inc]
id: u64,
sender: Identity,
text: String,
created_at: Timestamp,
}

🔑 主键与索引

主键

#[primary_key]
id: u64,

// 或唯一约束
#[unique]
email: String,

索引

#[index(btree)] // B-tree 索引
name: String,

#[unique]
email: String, // 唯一索引

📝 数据类型

类型说明
u8, u16, u32, u64, u128无符号整数
i8, i16, i32, i64, i128有符号整数
String字符串
bool布尔值
Identity用户身份
Timestamp时间戳
Vec<T>数组

🔧 表操作

use spacetimedb::Table;

// 插入
ctx.db.messages().insert(Message { id: 0, sender, text });

// 查询
ctx.db.messages().iter();
ctx.db.messages().id().find(123);

// 删除
ctx.db.messages().id().delete(123);

// 计数
ctx.db.messages().count();
← 上一页:安装部署下一页:Reducer 函数 →