2017-04-16 17 views
1

比方說,我創建下表:如何將值添加到類型以便能夠基於它進行數據庫碎片?

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

我想創建一個名爲的myType類型,只能有4個值,例如「藍」,「白」,「綠色」和「紅色」。

我應該建立這樣的:

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

,然後用這些值填充:

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

如果我這樣做,我想插入值到表MYTABLE,如何我可以指定我想要選擇的類型嗎? 我能否根據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') 
); 
相關問題