是否可以使用Anorm在带有VARCHAR PK的表中插入记录?

时间:2013-10-03 19:03:56

标签: mysql scala anorm playframework-2.2

我正在尝试在MySQL表中插入一行,如下所示:

create table CURRENCIES ( 
  code        VARCHAR(3), 
  description VARCHAR(30),
  PRIMARY KEY (`code`)
);

我的Scala代码是:

val pk: Option[String] = DB.withConnection { implicit conn =>
  SQL("INSERT INTO currencies (code, description) VALUES ({code}, {description});")
      .on("code" -> code , "description" -> description)
      .executeInsert()
}

但是当我使用VARCHAR时,由于预期的数字PK,我收到错误。我已经阅读了关于ResultSetParser来实现这种插入,但我无法弄清楚如何使用它。

任何帮助?

1 个答案:

答案 0 :(得分:0)

以下是解决方案:

val pk: Option[String] = DB.withConnection { implicit conn =>
  SQL("INSERT INTO currencies (code, description) VALUES ({code}, {description});")
    .on("code" -> code , "description" -> description)
    .executeInsert[Option[String]](
                  ResultSetParser.singleOpt[String](
                      anorm.SqlParser.get[String]("1")
                  )
              )

}