Oracle外键约束之在创建表时设置外键约束

一 语法
列级进行设置
CREATE TABLE table1
(colume_name datetype REFERENCES
table2(column_name),...)
table1:从表
table2:主表
外键约束也被称为主次表的关系。
注意:
设置外键约束时,主表的字段必须是主键。
主从表中相应的字段必须是同一种数据类型。
从表中外键字段的值必须来自主表中的相应字段的值,或者为null值,其他值不允许。
 
二 实例
本实例演示了: 从表中外键字段的值必须来自主表中的相应字段的值,或者为null值,其他值不允许。
  1. SQL> create table typeinfo
  2. 2(typeid varchar2(10) primary key,
  3. 3typename varchar2(20));
  4. 表已创建。
  5. SQL> create table userinfo_f
  6. 2(id varchar2(10) primary key,
  7. 3 username varchar2(20),
  8. 4 typeid_new varchar2(10) references typeinfo(typeid));
  9. 表已创建。
  10. SQL> insert into typeinfo values(1,1);
  11. 已创建1行。
  12. SQL> insert into userinfo_f(id,typeid_new) values(1,2);
  13. insert into userinfo_f(id,typeid_new) values(1,2)
  14. *
  15. 1行出现错误:
  16. ORA-02291:违反完整约束条件(SYSTEM.SYS_C0011061)-未找到父项关键字
  17. SQL> insert into userinfo_f(id,typeid_new) values(1,1);
  18. 已创建1行。
  19. SQL> insert into userinfo_f(id,typeid_new) values(2,null);
  20. 已创建1行。
 

猜你喜欢

转载自cakin24.iteye.com/blog/2388738