我更新了文档:https://github.com/slick/slick/pull/721/
可以使用Table的foreignKey方法定义外键约束.它首先采用约束,引用列和引用表的名称.第二个参数列表从引用的表到其引用的列以及onUpdate和onDelete的ForeignKeyAction获取一个函数,它们是可选的,默认为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
}
Run Code Online (Sandbox Code Playgroud)