oracle在建表时如何指定主键的索引名和主键的表空间

例如建1个表:createtabletmp(MONVARCHAR2(6),IDNOVARCHAR2(10),primarykey(MON,IDNO));oracle会自动... 例如建1个表:
create table tmp(
MON VARCHAR2(6) ,
IDNO VARCHAR2(10) ,
primary key ( MON, IDNO )
) ;
oracle会自动给主键起个索引名,但我想自己指定主键的索引名,
而且我想指定主键所在的表空间为index_stat
那么上面的语句应该怎么改?
下面这种语句也想这样,应该怎么改?
create table tmp(
MON VARCHAR2(6) primary key ,
IDNO VARCHAR2(10) primary key
) ;
展开
 我来答
匿名用户
推荐于2016-08-01
展开全部
  在创建表时,只能指定主键与唯一键的索引表空间,其它类型的索引,只能通过CREATE INDEX/ALTER INDEX来指定。
  参考如下:
create table test1
(id number(10),
name varchar2(20),
age number(3),
constraint pk_test1 primary key(id) using index tablespace tbs_ind
)
tablespace tbs_cur;
百度网友825c901
2007-06-13 · TA获得超过103个赞
知道答主
回答量:80
采纳率:0%
帮助的人:103万
展开全部
假设你的表空间index_stat 用户名称为scott
create table scott.tmp(
MON VARCHAR2(6) ,
IDNO VARCHAR2(10) ,
primary key ( MON, IDNO )
) ;
自动生成的那个索引好像是不能改的,不过你可以给主键指定新的索引,语法如下:
alter table 表名 add constraints 索引名 primary key using index ...

或者直接使用create语句,例子如下:
create unique index tmp_PK on scott.tmp (
MON ASC,
IDNO ASC
);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wwjwang
2007-06-13 · TA获得超过219个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:234万
展开全部
create table tmp(
MON VARCHAR2(6) ,
IDNO VARCHAR2(10)
);

alter table tmp
add constraint PK_tmp primary key ( MON, IDNO )
using index
tablespace index_stat
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d1dedea
推荐于2018-02-27 · TA获得超过1122个赞
知道小有建树答主
回答量:702
采纳率:0%
帮助的人:645万
展开全部
我想不用那么麻烦吧!

两个都一样:

create table tmp(

MON VARCHAR2(6) ,

IDNO VARCHAR2(10) ,

constraint pk_tmp primary key ( MON, IDNO )

using index tablespace index_stat

) ;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
四平联想aE
2007-06-13 · 贡献了超过267个回答
知道答主
回答量:267
采纳率:0%
帮助的人:0
展开全部
重新发贴
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式