我正在将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
”语句在做什么?
答案 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数据库与存储表或索引数据的文件系统之间的桥梁。