@MSStpでは良い答えが得られましたが、テーブル内の悪いデータ(負の数など)が得られないようにするには、まだ制約が必要です。手数料と特典の列に0〜99の整数が含まれていて、Oracleが2.2の入力を受け付けないようにしたいという制約がある場合(これはMSの解決方法で受け入れられます。データベースに2を格納する)、Abdul Rehman Sayedがあなたの質問にコメントで示唆したように、制約を追加する必要があります。
alter table acctmanager
add (comm_id number(2) default 10
constraint check_comm (comm_id >= 0 and comm_id = trunc(comm_id)),
ben_id number(2)
constraint check_ben (ben_id >= 0 and ben_id = trunc(ben_id))
)
;
しかし:ただの思考..... comm_id
とben_id
何ですか?もし彼らが特定の手数料や便益の説明/レベル/何かに何らかの種類のコードであれば、本当にチェック制約が必要ですか? comm_id
とben_id
がプライマリキーである(またはそうでなければならない)これらのコードを説明する別のテーブルがありますか?どのような場合には、制約をチェックするのではなく、外部キーの制約が必要ですか?
手数料と便益が整数の場合、なぜvarchar列を作成していますか?検査の制約で最大値を簡単に管理することができます –
そして 'Comm_id'カラムにDEFAULT値がありません。 – MJH
ようこそスタックオーバーフロー!良い質問をするのを助けるために私たちの[SO Question Checklist](http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist)をよく読んで、良い答えを得てください。 –