首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle 19c:创建唯一索引

Oracle 19c:创建唯一索引
EN

Database Administration用户
提问于 2021-08-20 23:07:26
回答 1查看 354关注 0票数 2

我正在尝试使用这个SQL创建一个唯一的索引。

代码语言:javascript
复制
ALTER TABLE user_account
    ADD CONSTRAINT uc_user_name UNIQUE (user_name)
/

它会产生以下错误:

ORA- 01950 :没有对表空间‘用户’01950的特权。00000 -“在表空间‘%S’上没有特权” *原因:用户没有在指定的tablespace. *操作中分配区段的权限:授予用户适当的系统权限或在表空间上授予用户空间资源。

我认为唯一的索引将创建在与此表的主键索引相同的表空间中;在我的示例中,表空间名为"portal_data“。

我不希望在“用户”表空间中创建索引(任何类型的索引);所有索引都应该在"portal_data“表空间中创建。

我该采取什么行动?

谢谢

EN

回答 1

Database Administration用户

发布于 2021-08-20 23:23:20

如果不指定表空间,它将为用户使用默认的表空间。

您可以为用户更改默认的表空间(如果您根本不想使用用户,则应该这样做):

代码语言:javascript
复制
alter user my_user default tablespace my_tablespace;

也可以在您的使用索引子句中包含一个add constraint

代码语言:javascript
复制
ALTER TABLE user_account ADD CONSTRAINT uc_user_name UNIQUE (user_name) 
USING index TABLESPACE my_tablespace

或者,您只需创建一个指定表空间的唯一索引。

代码语言:javascript
复制
create unique index my_index on user_account  (user_name) tablespace my_tablespace
票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/298353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档