Oracle查詢表的外來鍵引用關係
Oracle查詢表的外來鍵引用關係
需求:用sql語句查詢兩個表之間的外來鍵引用關係
1 進haishu使用者
conn haishu/haishu
2 建立主表
create table jobs
(
job_id varchar2(10) primary key,
job_title varchar2(35),
min_salary number(6),
max_salary number(6)
);
3 建立從表
create table employeenew
(
id number(6),
name varchar2(20),
job_id varchar2(10)
);
4 建立外來鍵
SQL> alter table employeenew add constraint em_jobs_fk foreign key (job_id) references jobs (job_id);
Table altered.
5 檢視外來鍵資訊
SQL> select table_name, constraint_name, constraint_type, r_constraint_name
from user_constraints where table_name = 'EMPLOYEENEW';
TABLE_NAME CONSTRAINT_NAME CONSTRAINT_TYPE R_CONSTRAINT_NAME
--------------- --------------- --------------- --------------------
EMPLOYEENEW EM_JOBS_FK R SYS_C0011201
這裡SYS_C0011201即為JOBS主鍵的CONSTRAINT_NAME
SQL> select table_name, constraint_name, column_name from user_cons_columns where constraint_name = 'EM_JOBS_FK';
TABLE_NAME CONSTRAINT_NAME COLUMN_NAME
--------------- --------------- ---------------
EMPLOYEENEW EM_JOBS_FK JOB_ID
6 驗證外來鍵約束的作用
SQL> insert into jobs values('IT_DEPT', 'CODER', 1000, 10000);
1 row created.
SQL> insert into employeenew values(101, 'SCOTT', 'IT');
insert into employeenew values(101, 'SCOTT', 'IT')
*
ERROR at line 1:
ORA-02291: integrity constraint (SCOTT.EM_JOBS_FK) violated - parent key not
found
7 查詢表的外來鍵引用關係
select t1.table_name,
t2.table_name as "TABLE_NAME(R)",
t1.constraint_name,
t1.r_constraint_name as "CONSTRAINT_NAME(R)",
a1.column_name,
a2.column_name as "COLUMN_NAME(R)"
from user_constraints t1, user_constraints t2, user_cons_columns a1, user_cons_columns a2
where t1.owner = upper('haishu') and
t1.r_constraint_name = t2.constraint_name and
t1.constraint_name = a1.constraint_name and
t1.r_constraint_name = a2.constraint_name;
TABLE_NAME TABLE_NAME(R) CONSTRAINT_NAME CONSTRAINT_NAME(R) COLUMN_NAME COLUMN_NAME(R)
--------------- --------------- --------------- -------------------- --------------- ---------------
EMPLOYEENEW JOBS EM_JOBS_FK SYS_C0011201 JOB_ID JOB_ID
注:如果是在當前使用者下,條件t1.owner = upper('haishu')可以不寫。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29485627/viewspace-1258689/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE查詢表之間的主外來鍵關係Oracle
- Oracle 查詢表與表之間的 主外來鍵關係Oracle
- 父表修改與外來鍵的關係(主鍵DML與外來鍵的關係)
- oracle查詢表資訊(索引,外來鍵,列等)Oracle索引
- Oracle 外來鍵查詢sqlOracleSQL
- 查詢一個表的外來鍵
- Django(15)外來鍵和表關係Django
- Oracle根據主鍵查詢外來鍵Oracle
- 關於 oracle 外來鍵引用 與 goldengateOracleGo
- oracle中查詢、禁用、啟用、刪除表外來鍵Oracle
- ORACLE: 查詢(看)表的主鍵、外來鍵、唯一性約束和索引Oracle索引
- 查詢沒有索引的外來鍵索引
- oracle查詢沒有主鍵的表Oracle
- oracle 雜湊查詢與巢狀查詢跟表的先後關係測試Oracle巢狀
- Django中ORM外來鍵和表的關係(Django程式設計-4)DjangoORM程式設計
- 查詢(看)表的主鍵、外來鍵、唯一性約束和索引索引
- 關於外來鍵約束和對應主鍵資訊的查詢指令碼指令碼
- MySQL Oracle 查詢快慢和表的資料量多少有沒有關係?MySqlOracle
- oracle 主外來鍵關係及實驗Oracle
- Oracle 查詢鎖之間的依賴關係Oracle
- sql運算元據庫(3)-->外來鍵約束、資料庫表之間的關係、三大正規化、多表查詢、事務SQL資料庫
- 求主外來鍵的關係
- oracle查詢並殺掉鎖表及物件的session及相關係統程式Oracle物件Session
- 查詢外來鍵約束、子表欄位等資訊的SQLSQL
- ORACLE 查詢條件出現關鍵字:&Oracle
- MySQL建立資料表並建立主外來鍵關係MySql
- 開發CMP關係的時候,是建立主鍵表CMP關係然後指向外來鍵表CMP,還是反之?
- Oracle 表空間查詢相關sqlOracleSQL
- 解決無法刪除表,提示被外來鍵約束引用
- mysql新建表和多表查詢,關鍵字joinMySql
- 檢視主外來鍵關係
- oracle 查詢所有表的表名Oracle
- 資料庫的主外來鍵關係資料庫
- mysql帶IN關鍵字的查詢MySql
- 關於主外來鍵關係DML父表和DML子表加鎖方式
- mysql主外來鍵依賴關係MySql
- MySQL 檢視資料庫中有主外來鍵關係的表資訊MySql資料庫
- 查詢系統關鍵資訊