我对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
答案 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
的任何意义。