创建表样例

create or replace procedure table_procedure
AS
i_count integer;
begin
select count(*) into i_count from user_objects t where t.OBJECT_TYPE ='TABLE' and t.OBJECT_NAME = upper('tableName');
if i_count>0 then
EXECUTE IMMEDIATE 'drop table tableName purge';
end if;
end table_procedure;
/
call table_procedure();
drop procedure table_procedure;

--定义索引表空间
define idx_tablespace = 'indexname';

1.--创建未分区的表
create table tablename(
DEVID NUMBER(12) not null,
ISBACKUP NUMBER(12) not null
)
;
--为表添加约束(此处为主键约束)
alter table tablename add constraint constraint_name primary key (DEVID);

-- 为表添加注释
comment on table tablename
is '表的描述';
-- 为列添加注释
comment on column tablename.columnname
is '未使用';

2.--创建分区的表
create table tablename(
ID NUMBER(10),
ALARMINDEX NUMBER(32),
DEVICEID NUMBER(10)
)
partition by range (ALARMTIME)
interval (numtodsinterval(1, 'DAY'))
(
--创建分区时初始创建一个默认分区
partition dt0 values less than (to_date('2011-01-15','yyyy-mm-dd'))
)
;

3.--创建带索引的分区表
create table T_Tbale_INDEXHIS
(
BEGINTIME TIMESTAMP(9),
TASKID NUMBER(38),
DEVICEID NUMBER(38),
BFRAMERESUME NUMBER(38,6)
)
partition by range (BEGINTIME)
interval (numtodsinterval(1, 'DAY'))
(
partition name values less than (to_date('2011-01-15','yyyy-mm-dd'))
);
--创建分区索引(局部索引)
create index IDX_STAT_PB_INDEXHIS on T_Tbale_INDEXHIS
(taskid, deviceid) tablespace &idx_tablespace local;

4.--创建hash分区
create table T_table_STB
(
STBID VARCHAR2(64),
USERID VARCHAR2(128),
POPID NUMBER(12),
MESSAGEVERSION NUMBER(5)
)
partition by hash (POPID)
(
partition P1,
partition P2,
partition P3
)
;
--打开row movement(目的是提高分区表的灵活性——允许更新Partition Key)
alter table T_table_STB enable row movement;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值