我需要在表上添加列约束,如下所示:
改变表CH
add constraint CH_N_TYPE_CHK check (N_TYPE = 'bc' or N_TYPE = 'pub');
这样插入CH.N_TYPE
的所有值都应该只是bc
或pub
。
我想使用slick的table.ddl创建表格 我认为它可能涉及Constraint类,但它似乎只支持外键或索引,我在光滑或光滑测试工具包上搜索代码但找不到任何提示。 在光滑的桌子上是否可行?
答案 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中使用它。