如何在光滑表列上添加值检查约束

时间:2013-08-06 01:37:01

标签: slick

我需要在表上添加列约束,如下所示:

改变表CH

add constraint CH_N_TYPE_CHK check (N_TYPE = 'bc' or N_TYPE = 'pub');

这样插入CH.N_TYPE的所有值都应该只是bcpub

我想使用slick的table.ddl创建表格 我认为它可能涉及Constraint类,但它似乎只支持外键或索引,我在光滑或光滑测试工具包上搜索代码但找不到任何提示。 在光滑的桌子上是否可行?

1 个答案:

答案 0 :(得分:0)

我没有找到与检查约束用法相关的任何内容,我发现的唯一方法是在列中使用枚举。

CH(tag:Tag) extends Table[CHRow]("ch") {
val nType: Column[NType.Value] = column[NType.Value]("N_TYPE")
implicit val enumMapper = MappedColumnType.base[NType.Value, String](_.toString(),  NType.withName(_))
.
.
.
}

并按如下方式定义枚举     抽象类NType扩展Enumeration {       val BC =值       val PUB =值     }

使用此功能,您只能在列中插入值BC或PUB。 上面的代码遵循光滑2.0的模式,但只需稍加修改就可以在光滑的1中使用它。