阿木伯 著 |
|
如何查询出primary key和forgen key的关系表? |
|
- 说明:
SQL> create user a identified by a; --创建测试用户a SQL> grant connect,resource to a; --给用户a授权 SQL> conn a/a --以用户a连接 SQL> create table a1(a11 number primary key); SQL> insert into a1 values(1); SQL> insert into a1 values(2); SQL> insert into a1 values(3); SQL> commit; SQL> create table b1 2 ( 3 b11 char(1), 4 b12 number, 5 foreign key(b12) references a1(a11) 6 ) 7 / SQL> insert into b1 values('a',4); insert into b1 values('a',4) * ERROR 位于第 1 行: ORA-02291: 违反完整约束条件 (A.SYS_C001241) - 未找到父项关键字
注:a1表中a11列上只有1、2、3这三个值,而b1表中的列b12定义时引用了a1表中的a11列, 那么,在向b1表中录入记录时,b12列只能录1、2、3,而不能输入4。 SQL> create table a2(a21 number primary key); SQL> insert into a2 values(1); SQL> insert into a2 values(2); SQL> insert into a2 values(3); SQL> commit; SQL> create table b2 2 ( 3 b21 char(1), 4 b22 number, 5 foreign key(b22) references a2(a21) 6 ) 7 /
注:以下语句查询primary key和forgen key的关系表SQL> col 外键拥有者 format a10 SQL> col 外键表 format a10 SQL> col 主键拥有者 format a10 SQL> col 主键表 format a10 SQL> col 外键列 format a15 SQL> col 主键列 format a15 select a.owner 外键拥有者, a.table_name 外键表, c.column_name 外键列, b.owner 主键拥有者, b.table_name 主键表, d.column_name 主键列 from user_constraints a, user_constraints b, user_cons_columns c, user_cons_columns d where a.r_constraint_name=b.constraint_name and a.constraint_type='R' and b.constraint_type='P' and a.r_owner=b.owner and a.constraint_name=c.constraint_name and b.constraint_name=d.constraint_name and a.owner=c.owner and a.table_name=c.table_name and b.owner=d.owner and b.table_name=d.table_name / 外键拥有者 外键表 外键列 主键拥有者 主键表 主键列 ---------- ---------- --------------- ---------- ---------- ------ A B1 B12 A A1 A11 A B2 B22 A A2 A21
|
【最后更新:】 |
|