1

Oracle DBでテーブルを作成し、列で許可されている数値が1、2、3になるように制約を追加しようとしています。

CREATE TABLE "TABLE_EXAMPLE"
(
.
.
"PROTOCOL" NUMBER (1,2,3),

....)

CONSTRAINT "CH1"
        CHECK ("PROTOCOL" BETWEEN 1 AND 3),

私は正しいことをしていますか、それとももっと良い方法ですか?

4

2 に答える 2

5
CREATE TABLE TABLE_EXAMPLE 
(
 ...
  PROTOCOL NUMBER(1) NOT NULL CONSTRAINT CH1 CHECK (PROTOCOL IN (1,2,3))
 ...
);

BETWEEN 1 AND 31.5、1.6などが含まれます。

"また、テーブル名または列名に特殊文字が含まれていない限り、引用符は使用しないことをお勧めします...

于 2013-01-22T11:45:10.973 に答える
2

テーブルレベルでチェックインする場合は、チェック制約が最善の方法です。より大きな値を挿入する場合、チェック制約はエラーをスローするためです。

于 2013-01-22T11:42:23.157 に答える