Je viens de démarrer un nouveau projet et je voulais utiliser HaskellDB au début. J'ai créé une base de données avec 2 colonnes:Insertion SQL partielle dans haskelldb
create table sensor (
service text,
name text
);
..found comment faire les machines de haskelldb de base (ohhh..the de documentation) et je voulais faire un insert. Cependant, je voulais faire un insert partiel (il sont censés être plus colonnes), quelque chose comme:
insert into sensor (service) values ('myservice');
Traduit en haskelldb:
transaction db $ insert db SE.sensor (SE.service <<- (Just $ senService sensor))
Mais ... cela ne fonctionne tout simplement pas . Ce qui ne fonctionne pas non plus, c'est si je spécifie les noms des colonnes dans un ordre différent, ce qui n'est pas vraiment cohérent. Y at-il un moyen de faire un insert partiel dans haskelldb?
Les codes d'erreur que je reçois sont - quand je venez d'insérer une autre colonne (le « nom ») comme le premier:
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..
Et quand je fais le « service » comme le premier - et seulement - terrain, je reçois:
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'
(j'ai deux ou trois autres colonnes dans le tableau) Cela ressemble vraiment « la conception », malheureusement :(
Il serait utile de connaître les erreurs que vous voyez et les types calculés pour certaines expressions intermédiaires. –