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 行。
結論:有外鍵約束的字段可以為空。如果不為空的話,則一定要滿足外鍵的約束關系