我可以使用主键/唯一键引用的列数更少的外键吗? (ORA-02270错误说不)Oracle参照约束
回答
FK不一定是另一个表的PK。它可以,但它不一定。
所以,你可以根据需要为FK使用尽可能多列...
从oracle:
在子表的外键将一般参考父主键表。
编辑:原来的问题是关于列的数量,而不是关于使用不完整的PK的FK。
FK必须引用另一个表中唯一的东西。因此,您必须使用任何具有UNIQUE约束的列或另一个表的PK(因为PK必须是唯一的)。例如,您从表中选择多个列,因为每个列都不是唯一的,但多列的连接将是唯一的)。
ORA-02270另有说明 – Rnet
考虑到您的原始问题,ORA-02270未说明否则。它只是说列必须是唯一的,并且不涉及列数。你的FK可以有任意数量的列(但限于oracle中的32),但是它们都必须具有唯一的约束。 – woliveirajr
您可以使用较少的列,但使用的列必须对它们具有UNIQUE约束。
,当然,如果你可以把唯一约束仅仅是主键的一部分,那么你要问自己一个问题:“为什么我的主键有更多的列比第一需要地点?”
- 1. 参照约束?
- 2. 参照完整性约束是Oracle
- 3. 如何使用尊重参照完整性约束的Oracle Dblink?
- 4. Oracle null约束
- 5. Oracle约束
- 6. 删除与参照完整性约束
- 7. 参照完整性约束意味着
- 8. 参照表没有外键约束
- 9. Oracle检查约束
- 10. oracle唯一约束
- 11. Oracle检查约束
- 12. Oracle约束检查
- 13. Oracle外键约束问题
- 14. sql数据库oracle约束
- 15. 未执行Oracle FK约束
- 16. Oracle找到约束条件
- 17. oracle完整性约束
- 18. 一个Oracle检查约束
- 19. 约束检查Oracle SQL
- 20. Oracle 11g:混淆约束
- 21. Oracle:所有约束表
- 22. 外键约束在Oracle
- 23. Oracle中的外键约束
- 24. 新的Oracle约束类型
- 25. Oracle sql约束问题
- 26. Oracle约束:混合唯一性和检查约束条件
- 27. 使用@OneToMany删除参照完整性约束违规
- 28. 参照完整性约束冲突发生
- 29. 发生参照完整性约束违规Nullable FK
- 30. 的SchemaExport和关闭参照完整性约束
外键需要引用单个外键行。这意味着*所有*的唯一键(并且主键也是唯一键)。 – MatBailie