3

次のように、テーブルに列制約を追加する必要があります。

テーブル CH の変更

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

に挿入されるすべての値CH.N_TYPEは、いずれかbcまたはpubのみである必要があります。

slick の table.ddl を使用してテーブルを作成したいと考えています。
Constraint クラスが関係している可能性があると思いますが、外部キーまたはインデックスのみをサポートしているようです。slick または slick-test-kit でコードを検索しましたが、ヒントが見つかりませんでした。滑らかなテーブルの上で実行できますか?

4

1 に答える 1

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(_))
.
.
.
}

列挙型を次のように定義します。abstract class NType extends Enumeration { val BC = Value val PUB = Value }

これにより、値 BC または PUB のみを列に挿入できます。上記のコードは slick 2.0 のパターンに従いますが、少し変更を加えると slick 1 でも使用できます。

于 2014-01-03T18:50:03.613 に答える