gpt4 book ai didi

scala - 如何在 slick 中对外键进行级联删除

转载 作者:行者123 更新时间:2023-12-04 11:52:39 26 4
gpt4 key购买 nike

slick ,如何对外键进行级联删除?有什么方法可以在模式级别指定这一点,或者在查询后调用 delete 时执行此操作?

最佳答案

我更新了文档:https://github.com/slick/slick/pull/721/

可以使用表的 foreignKey 定义外键约束。方法。它首先为约束、引用列和引用表取一个名称。第二个参数列表从被引用的表中获取一个函数到其被引用的列以及 ForeignKeyAction用于 onUpdate 和 onDelete,它们是可选的,默认为 NoAction .为表创建 DDL 语句时,会向其中添加外键定义。

class Coffees(tag: Tag) extends Table[(String, Int, Double, Int, Int)](tag, "COFFEES") {
def supID = column[Int]("SUP_ID")
//...
def supplier = foreignKey("SUP_FK", supID, suppliers)(_.id, onUpdate=ForeignKeyAction.Restrict, onDelete=ForeignKeyAction.Cascade)
// compiles to SQL:
// alter table "COFFEES" add constraint "SUP_FK" foreign key("SUP_ID")
// references "SUPPLIERS"("SUP_ID")
// on update RESTRICT on delete CASCADE
}

关于scala - 如何在 slick 中对外键进行级联删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22539184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com