日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
oracle外鍵怎么設(shè)置 oracle添加外鍵語句

oracle sqldeveloper怎么設(shè)置外鍵

powerdesigner需要先建立refrence,然后雙擊refrence設(shè)置兩表的主外鍵字段。

堅(jiān)守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價(jià)值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都成都主動(dòng)防護(hù)網(wǎng)小微創(chuàng)業(yè)公司專業(yè)提供成都企業(yè)網(wǎng)站建設(shè)營銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計(jì)、底層架構(gòu)、網(wǎng)頁布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。

如何啟用和禁用oracle&DB2數(shù)據(jù)庫外鍵約束(轉(zhuǎn))

一、Oracle數(shù)據(jù)庫:禁用約束基本語法:alter table 數(shù)據(jù)庫表名 disable constraint 約束名 假設(shè)現(xiàn)在需要關(guān)閉pub_organ的外鍵約束:1、 首先查詢pub_organ存在哪些外鍵約束,此時(shí)需要用到oracle的字典表user_constraints。select * from user_constraints where table_name='PUB_ORGAN'; 上圖就是查詢結(jié)果,其中各字段含義如下:OWNER: 表的所有者CONSTRAINT_NAME: 約束名稱CONSTRAINT_TYPE: 約束類型(R代表外鍵,P代表主鍵,C代表check約束)TABLE_NAME: 表名稱SEARCH_CONDITION: check約束的具體信息STATUS: ENABLED表示當(dāng)前約束是啟用的,DISABLED表示當(dāng)前約束未啟用。2、 查詢出表存在哪些約束后,即可以通過alter語句啟用或禁用指定的約束了。如禁用pub_organ表的外鍵PUBORGAN_FK1,則可以使用如下命令實(shí)現(xiàn):alter table PUB_ORGAN disable constraint PUBORGAN_FK1;執(zhí)行后,再次查詢字典表user_constraints,如下: 此時(shí)往數(shù)據(jù)庫表pub_organ中插入數(shù)據(jù)時(shí)就不再受外鍵約束的影響了。 啟用約束基本語法:alter table 數(shù)據(jù)庫表名 enable constraint 約束名 如現(xiàn)在需要重新啟用pub_organ的外鍵約束,可以使用如下命令:alter table PUB_ORGAN enable constraint PUBORGAN_FK1;二、DB2數(shù)據(jù)庫:禁用約束基本語法:ALTER TABLE 表名稱 ALTER FOREIGN KEY 約束名稱 NOT ENFORCED 啟用約束基本語法:ALTER TABLE 表名稱 ALTER FOREIGN KEY 約束名稱 ENFORCED 相關(guān)字典表:SYSIBM.SYSTABCONST如:select * from SYSIBM.SYSTABCONST where tbname='PUB_ORGAN'; 各字段含義如下:NAME: 約束名稱DEFINER: 定義者CONSTRAINTTYP: 約束類型(P代表主鍵,F(xiàn)代表外鍵)TBNAME: 表名稱ENFORCED: 是否啟用(Y代表啟用,N代表未啟用)三、封裝成java接口、批量執(zhí)行在實(shí)際工作中,經(jīng)常會(huì)將若干個(gè)表,或者所有數(shù)據(jù)庫表的外鍵一起禁用,此時(shí)需要批量執(zhí)行相關(guān)命令,筆者根據(jù)工作實(shí)際,使用java封裝了相關(guān)接口,以方便使用。對(duì)外暴露接口如下:/* * 啟用當(dāng)前用戶指定tableName的所有外鍵約束 * 入?yún)⑹褂每勺儏?shù)(jdk5新特性) * 調(diào)用方式: * 1、enableFK("pub_organ") * 2、enableFK("pub_organ","pub_stru") * 3、enableFK(new String[]{"pub_organ","pub_stru"}) */ publicstaticvoidenableFK(String...tableNames){ disableORenbaleFK(true,tableNames); }/* * 禁用當(dāng)前用戶指定tableName的所有外鍵約束 */ publicstaticvoiddisableFK(String...tableNames){ disableORenbaleFK(false,tableNames); }/* * 啟用當(dāng)前用戶所有表的外鍵約束 */ publicstaticvoid enableAllFK(){ disableORenableAllConstraint(true); } /* * 禁用當(dāng)前用戶所有表的外鍵約束 */ publicstaticvoid disableAllFK(){ disableORenableAllConstraint(false); } 其中核心處理代碼如下: if(tableNames==null||tableNames.length==0){ thrownew RuntimeException("入?yún)ableNames不能為空!"); } //查詢指定表的外鍵約束 String sql = null; String dbType = getDBType(); if(dbType.contains("ORACLE")){ sql = "select 'alter table ' || table_name || ' disable constraint ' || constraint_name from user_constraints where constraint_type='R' and TABLE_NAME in("; if(isEnable){ sql = sql.replace("disable", "enable"); } }elseif(dbType.contains("DB2")){ sql = "select 'ALTER TABLE ' || TBNAME || ' ALTER FOREIGN KEY ' || NAME ||' NOT ENFORCED ' FROM SYSIBM.SYSTABCONST WHERE CONSTRAINTYP='F' and TBNAME in("; if(isEnable){ sql = sql.replace("NOT ENFORCED", "ENFORCED"); } }else{ thrownew RuntimeException("數(shù)據(jù)庫類型無效(僅支持Oracle和DB2),dbType="+dbType); } StringBuffer generateSQL = new StringBuffer(sql); for(int i=0;i

oracle中 怎么設(shè)主外鍵?

以oracle自帶的用戶scott為例。

create?table?dept(

deptno?number(2)?primary?key,?--deptno?為?dept表的主鍵

dname?varchar2(10),

loc?varchar2(9)

);

create?table?emp(

empno?number(4)?primary?key,?--empno?為?emp表的主鍵

ename?varchar2(10),

job?varchar2(9),

mgr?number(4),

hiredate?date,

sal?number(7,2),

comm?number(7,2),

deptno?number(2)?references?dept(deptno)?--dept表中deptno字段?為?emp表的外鍵

);


分享文章:oracle外鍵怎么設(shè)置 oracle添加外鍵語句
本文鏈接:http://www.dlmjj.cn/article/higsie.html