从数据库脚本中删除表空间引用

时间:2012-07-31 15:46:52

标签: sql database oracle

我对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

2 个答案:

答案 0 :(得分:1)

阅读本文件:

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

它提供了一个很好的概述表空间是什么,应该解决这个问题。

答案 1 :(得分:0)

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

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

虽然在CREATE TABLE主键约束中会自动启用关联索引(除非我遗漏了某些内容),所以我看不出保留ENABLE的任何意义。