我正在练习数据库创建和表空间以及表实现。我有一个问题,我在互联网上搜索了一些想法,但没有一个是我现在所拥有的精确。我的问题是,是否可以创建一个使用外键的表,该外键引用另一个表空间中的另一个表列。 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;
答案 0 :(得分:3)
在Oracle中,tablespaces是用于管理其存储参数的表的逻辑容器(最重要的是,它们映射到数据文件的方式)。
表空间对表的权限或约束没有影响。完全可以将外键添加到引用不同表空间上的表的表中。
答案 1 :(得分:1)
正如@Mureinik所说,将外键指向其他表空间中的表是完全可能的。话虽如此,我倾向于不这样做。使用外键跨越表空间边界是一些(尽管是温和的)指示表空间设置可以进行一些重新考虑。
我个人会将表空间用作一个管理单元,包含共享一些(通常是物理的)属性的表(和/或索引),这些属性应该只读或备份或一起传输......