向抽象类型添加约束

时间:2012-12-09 18:35:17

标签: sql oracle constraints object-oriented-database

我创建了这种类型:

create type baseType as Object(...) NOT Instantiable not Final

我想在某些字段中添加约束。问题是not instantiable中的这种类型,因此,我无法在其字段中添加约束。那么,当我创建我的继承类型

create type childType1 under baseType (...) 

create type childType2 under baseType  (...) 

我必须为所有子表添加约束。这是正确的方法吗?我认为只有在父类型中才能在公共字段上添加约束。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

您根本无法向对象类型添加约束 - 约束在表上。如果对象不可实例化,则不能有基于它的表,因此没有约束。

我想答案是使对象类型为Instantiable。然后,您可以使用约束创建基于它的表。当然,这些约束不会被子类型“继承”。

然而,所有这一切,我个人都避免使用Oracle对象类型。