创建外键并在不同的表空间上使用引用?

时间:2014-07-31 04:53:10

标签: sql oracle foreign-keys tablespace

我正在练习数据库创建和表空间以及表实现。我有一个问题,我在互联网上搜索了一些想法,但没有一个是我现在所拥有的精确。我的问题是,是否可以创建一个使用外键的表,该外键引用另一个表空间中的另一个表列。 Oracle SQL。

create table agent(
code Number(4), 
name varchar(30), 
area Number(4), 
constraint pk_Code primary key (code), 
constraint fk_Area foreign key (area) references Warehouse(code)) 
tablespace sales;

2 个答案:

答案 0 :(得分:3)

在Oracle中,tablespaces是用于管理其存储参数的表的逻辑容器(最重要的是,它们映射到数据文件的方式)。

表空间对表的权限或约束没有影响。完全可以将外键添加到引用不同表空间上的表的表中。

答案 1 :(得分:1)

正如@Mureinik所说,将外键指向其他表空间中的表是完全可能的。话虽如此,我倾向于不这样做。使用外键跨越表空间边界是一些(尽管是温和的)指示表空间设置可以进行一些重新考虑。

我个人会将表空间用作一个管理单元,包含共享一些(通常是物理的)属性的表(和/或索引),这些属性应该只读或备份或一起传输......