2017-04-16 3 views
1

私は、次の表を作成することとしましょう:タイプに値を追加して、それに基づいてデータベースの断片化を行うことはできますか?

CREATE TABLE MYTABLE 
(COLUMN1 INT NOT NULL, 
COLUMN2 myType NOT NULL); 

私は「グリーン」と「赤、「白」、「青」例えば、4つの値のみを持つことができますMYTYPE名前付きの型を、作成したいです"

私はこのようにそれを作成する必要がありますどのように、私はそれを行う場合

INSERT INTO myType (name) 
VALUES ("blue", "red", "green" , "white"); 

、と私はテーブルMYTABLEに値を挿入する:

CREATE TYPE myType AS OBJECT 
( 
name VARCHAR NOT NULL 
); 

、その後、それらの値とそれを埋めますどのタイプを選択したいのですか? そして、そのmyTypeの4つの値に基づいてMYTABLEの水平断片化を行うことができますか?

+0

なぜチェック制約を使用しないのですか? –

答えて

2

なぜタイプを使用しますか?単純な列は、それらの値を強制するためにCHECK制約で、十分であろう:

CREATE TABLE MYTABLE 
(COLUMN1 INT NOT NULL, 
    COLUMN2 varchar2(10) NOT NULL 
    check (column2 in (('blue', 'red', 'green' , white')) 
); 

「私はMYTABLEの水平方向の断片化を行うことができるでしょう」

はい。

CREATE TABLE MYTABLE 
(COLUMN1 INT NOT NULL, 
    COLUMN2 varchar2(10) NOT NULL 
    check (column2 in ('blue', 'red', 'green' , 'white')) 
) 
partition by list (column2) 
(
    partition p_blue 
     values ('blue') 
    , partition p_red 
     values ('red') 
    , partition p_green 
     values ('green') 
    , partition p_white 
     values ('white') 
); 
関連する問題