ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 外鍵約束的問題,ORA-02291

外鍵約束的問題,ORA-02291

原创 Linux操作系统 作者:jack198409 时间:2007-11-14 00:00:00 0 删除 编辑

最近做测试总是遇到ORA-02291错误,经过查资料,对这个错误做了下了解。

请参阅以下

有外键FK约束的字段可以为空

1。创建测试表
SQL> create table lesson(lesson_name varchar2(20), classroom varchar2(10));

表已创建。

SQL> create table teacher(name varchar2(20),lesson_name varchar2(20));

表已创建。

SQL> alter table lesson add constraint pk_lesson primary key(lesson_name);

表已更改。

SQL> alter table teacher add constraint fk_lessonname foreign key(lesson_name)
2 references lesson(lesson_name);

表已更改。


2。插入测试数据
SQL> insert into lesson values('english','class 1');

已创建 1 行。

SQL> insert into lesson values('music','class 2');

已创建 1 行。


3。测试有外键的字段是否可以为空
SQL> insert into teacher values('wang','hello');
insert into teacher values('wang','hello')
*
ERROR 位于第 1 行:
ORA-02291: 违反完整约束条件 (SYSTEM.FK_LESSONNAME) - 未找到父项关键字

SQL> insert into teacher values('wang','music');

已创建 1 行。

SQL> insert into teacher values('wang',null);

已创建 1 行。


结论:有外键约束的字段可以为空。如果不为空的话,则一定要满足外键的约束关系。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10768286/viewspace-83473/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-13

  • 博文量
    135
  • 访问量
    295179