【问题标题】:How to drop tables in slick cascade (postgreSQL)?如何在光滑的级联(postgreSQL)中删除表?
【发布时间】:2016-06-24 08:48:24
【问题描述】:

我正在使用 PostgreSQL。我需要删除表级联,这是来自Scala-Forklift 的代码 sn-p 我需要覆盖它以便尽管外键未知但删除表:

override def reset = {
val drop = MTable.getTables(None, None, None, None).flatMap { s =>
  DBIO.sequence(s filter { t =>
      t.tableType != null && t.tableType.toLowerCase == "table"
    } map { t =>
      TableQuery(new DummyTable(_, t.name.name)).schema.drop
    })
  }
  val f = db.run(drop)
  Await.result(f, Duration.Inf)
}

但我不知道怎么做。光滑的模式有可能吗?如果没有,您能否给我一个示例,如何使用此方法中集成的 SQL 对“MTable”中的所有表进行操作?

非常感谢您!

【问题讨论】:

    标签: postgresql scala foreign-keys slick cascade


    【解决方案1】:

    您是否尝试使用如下外键声明您的架构:

    def aFK = foreignKey("artistid", artistFacebookId, artists)(_.facebookId, onDelete = ForeignKeyAction.Cascade)
    

    您还需要在 PostgreSQL 架构定义中对其进行修改:

    artistId     VARCHAR REFERENCES artists(facebookId) ON DELETE CASCADE,
    

    【讨论】:

      猜你喜欢
      • 2010-09-07
      • 1970-01-01
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 1970-01-01
      • 2022-09-26
      相关资源
      最近更新 更多