如何向类型添加值以便能够基于它进行数据库分段?
How can I add values to a type to be able to do a database fragmentation based on it?
假设我创建了以下内容table:
CREATE TABLE MYTABLE
(COLUMN1 INT NOT NULL,
COLUMN2 myType NOT NULL);
我想创建一个名为 myType 的类型,它只能有 4 个值,例如 "blue" 、 "white" 、 "green" 和 "red".
我应该这样创建它吗:
CREATE TYPE myType AS OBJECT
(
name VARCHAR NOT NULL
);
然后用这些值填充它:
INSERT INTO myType (name)
VALUES ("blue", "red", "green" , "white");
如果我这样做,并且我想将值插入 table MYTABLE,我如何指定我想要 select 的类型?
我是否能够根据 myType 的 4 个值对 MYTABLE 进行水平分段?
为什么要使用类型?一个简单的列就足够了,使用 CHECK CONSTRAINT 来强制执行这些值:
CREATE TABLE MYTABLE
(COLUMN1 INT NOT NULL,
COLUMN2 varchar2(10) NOT NULL
check (column2 in (('blue', 'red', 'green' , white'))
);
" will I be able to do a horizontal fragmentation of 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')
);
假设我创建了以下内容table:
CREATE TABLE MYTABLE
(COLUMN1 INT NOT NULL,
COLUMN2 myType NOT NULL);
我想创建一个名为 myType 的类型,它只能有 4 个值,例如 "blue" 、 "white" 、 "green" 和 "red".
我应该这样创建它吗:
CREATE TYPE myType AS OBJECT
(
name VARCHAR NOT NULL
);
然后用这些值填充它:
INSERT INTO myType (name)
VALUES ("blue", "red", "green" , "white");
如果我这样做,并且我想将值插入 table MYTABLE,我如何指定我想要 select 的类型? 我是否能够根据 myType 的 4 个值对 MYTABLE 进行水平分段?
为什么要使用类型?一个简单的列就足够了,使用 CHECK CONSTRAINT 来强制执行这些值:
CREATE TABLE MYTABLE
(COLUMN1 INT NOT NULL,
COLUMN2 varchar2(10) NOT NULL
check (column2 in (('blue', 'red', 'green' , white'))
);
" will I be able to do a horizontal fragmentation of 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')
);