使用sea-query查询动态发现的SQLite表遇trait绑定错误求助
解决sea-query动态schema查询的Iden trait绑定错误
问题出在你直接传入了TableDef实例,而TableDef本身并没有实现Iden trait——真正符合要求的是TableDef里的name字段,它的类型是Ident(已实现Iden)。
修正后的查询代码如下:
查询整张表
let table = &schema.tables[0]; let result = Query::select() .from(table.name.as_ref()) .build(SqliteQueryBuilder);
查询指定列(以所有列为例)
如果需要选择特定列,同样要从ColumnDef中提取name字段:
let table = &schema.tables[0]; let mut query = Query::select(); // 遍历表的所有列,添加到查询中 for column in &table.columns { query = query.column(column.name.as_ref()); } query = query.from(table.name.as_ref()); let result = query.build(SqliteQueryBuilder);
这样就能基于动态发现的schema构建查询,不需要提前定义表和列的枚举。
内容的提问来源于stack exchange,提问作者Drago96
相关产品推荐
相关产品推荐

