1

我对 SQL 比较陌生,只在需要时才涉足它。我对此进行了一些研究,但收效甚微。我需要从代码中删除表空间引用。数据库中已存在默认表空间的设置。顺便说一下,它是一个 Oracle 数据库。

如果我有这些代码行:

EXECUTE IMMEDIATE 'CREATE TABLE RAND_CATEGORY(
-------- insert random vars ---------------
CONSTRAINT RAND_CATEGORY PRIMARY KEY(cat_id,ver_num)
USING INDEX TABLESPACE VG_NDX ENABLE
)TABLESPACE VG_DATA';

这是我到目前为止所拥有的:

EXECUTE IMMEDIATE 'CREATE TABLE RAND_CATEGORY(
-------- insert random vars ---------------
CONSTRAINT RAND_CATEGORY PRIMARY KEY(cat_id,ver_num)
USING INDEX TABLESPACE VG_NDX ENABLE
)';

我的问题是,我应该删除整行:

USING INDEX TABLESPACE VG_NDX ENABLE

或者我应该删除“TABLESPACE VG_NDX”并将其保留为:

USING INDEX ENABLE

请记住,我是新手,我只需要帮助。过去两周我一直在学习 SQL,表空间对我来说有点奇怪。提前致谢!:D

4

2 回答 2

1

阅读这份文件:

http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7003.htm

它很好地概述了表空间是什么以及应该解决这个问题。

于 2013-08-20T14:04:04.057 回答
0

USING INDEX子句允许对约束相关的索引创建进行更多控制,请参见http://docs.oracle.com/cd/B28359_01/server.111/b28310/indexes003.htm。在您的情况下,TABLESPACE存储条款。

如果您想让 Oracle 使用默认表空间,您可以USING INDEX完全删除该子句 leave ENABLE

尽管在CREATE TABLE主键约束中关联索引是自动启用的(除非我错过了什么),所以我看不到保留ENABLE.

于 2012-07-31T16:15:11.010 回答