📊 定义表
使用 #[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, // 唯一索引📝 数据类型
🔧 表操作
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();