这个Oracle SQL语句有什么作用?

时间:2009-05-29 20:08:50

标签: sql oracle

我正在将MSSQL脚本迁移到Oracle SQL,但我无法弄清楚脚本中的哪一行正在做什么。

我是SQL新手。

CREATE TABLE HA_BACKUP_PROCESSES 
(
    ID numeric (10, 0) NOT NULL , 
    PROCESS_ID numeric (10, 0) NOT NULL , 
    BACKUP_PROCESS_ID numeric (10, 0) NOT NULL , 
    CONSTRAINT HA_BCK_PROC_PK PRIMARY KEY (ID) 
        USING INDEX TABLESPACE userdata001 
)

在上面的代码中,“USING INDEX TABLESPACE userdata001”语句在做什么?

3 个答案:

答案 0 :(得分:7)

此子句允许选择将在其中创建与UNIQUE或PRIMARY KEY约束关联的索引的表空间。如果未指定,则使用default_tablespace,如果default_tablespace为空字符串,则使用数据库的默认表空间

答案 1 :(得分:3)

表空间只不过是数据文件和索引的逻辑容器。

设置Oracle实例时,必须先定义表空间,然后才能创建数据文件。然后,在创建表或索引时,必须指定要在其中创建数据文件的表空间,或接受默认表空间。

答案 2 :(得分:2)

它指示数据库将索引信息存储在名为“userdata001”的表空间中。

A helpful explanation can be found here

表空间是Oracle数据库中的逻辑存储单元。这是合乎逻辑的,因为表空间在数据库所在的机器的文件系统中不可见。反过来,表空间由至少一个数据文件组成,该数据文件又物理上位于服务器的文件系统中。顺便说一句,数据文件只属于一个表空间。 存储在Oracle数据库中的每个表,索引等都属于一个表空间。表空间构建了Oracle数据库与存储表或索引数据的文件系统之间的桥梁。