我刚开始一个新项目,并想在开始时使用HaskellDB。我创建了一个数据库2列:haskelldb中的部分SQL插入
create table sensor (
service text,
name text
);
..found如何做基本HaskellDB机械(ohhh..the文档),想要做一次插入。然而,我想要做的部分插入(也应该是多列),是这样的:
insert into sensor (service) values ('myservice');
翻译成HaskellDB:
transaction db $ insert db SE.sensor (SE.service <<- (Just $ senService sensor))
不过...。那根本不起作用。如果我按不同的顺序指定列名,那也不起作用,这也不是很好。有没有办法在haskelldb中进行部分插入?
错误代码我得到的是 - 当我刚插入不同的列(“名称”)作为第一个:
Couldn't match expected type `SEI.Service'
against inferred type `SEI.Name'
Expected type: SEI.Intsensor
Inferred type: Database.HaskellDB.HDBRec.RecCons
SEI.Name (Expr String) er
When using functional dependencies to combine
Database.HaskellDB.Query.InsertRec
(Database.HaskellDB.HDBRec.RecCons f (e a) r)
(Database.HaskellDB.HDBRec.RecCons f (Expr a) er),
etc..
当我做“服务”作为第一个 - 也只有 - 场,我得到:
Couldn't match expected type `Database.HaskellDB.HDBRec.RecCons
SEI.Name
(Expr String)
(Database.HaskellDB.HDBRec.RecCons
SEI.Time
(Expr Int)
(Database.HaskellDB.HDBRec.RecCons
SEI.Intval (Expr Int) Database.HaskellDB.HDBRec.RecNil))'
against inferred type `Database.HaskellDB.HDBRec.RecNil'
(我有表一对夫妇的其他列) 这看起来真像“设计”,不幸的是:(
这将有助于了解您看到的错误以及为某些中间表达式计算的类型。 – 2010-08-27 19:47:53