玩框架 Slick 3 如何通过 scala 禁用 H2 外键约束?

Play framework Slick 3 how to disable H2 foreign key constraints by scala?

我正在使用 Scala 的 Play 框架 2.3。对于数据库管理,我使用的是 slick 3。我想暂时禁用 H2 数据库的外键约束。我发现在 H2 中通过 SET REFERENTIAL_INTEGRITY FALSE 是可能的。但我不知道如何通过 Scala 来设置它。你能告诉我吗?

您可以使用普通的 sqlu"SET REFERENTIAL_INTEGRITY FALSE"。请参阅 http://slick.typesafe.com/doc/3.0.0/sql.html

编辑:这是工作代码,

import slick.driver.H2Driver.api._
import scala.concurrent.ExecutionContext.Implicits.global

object Test extends App {

  def db = Database.forURL(
        url    = s"jdbc:h2:mem:test",
        driver = "org.h2.Driver"
  )

  def disableRefInt = {
      val result = db.run(sqlu"SET foreign_key_checks = 0 ");
      result onSuccess {
          case x => println("Done with the command" + x.toString());
      }
      result onFailure {
          case x => println("Not Done with the command" + x.toString());
      }
  }

}

出于某种原因 "set referential_integrity false" 出错,而 "set foreign_key_checks=0" 似乎工作正常。