oracle約束鍵解析_第1頁
oracle約束鍵解析_第2頁
oracle約束鍵解析_第3頁
oracle約束鍵解析_第4頁
oracle約束鍵解析_第5頁
已閱讀5頁,還剩35頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 一、 數據庫約束的作用和分類 primarykey 和unique他們的作用是為了不讓表中有重復的數據(一個表) check表示表中列的數據的范圍性的定義(一個表) defult表示表中的默認值 foreignkey 表與表之間的聯系(兩個或兩個以上的表)【unique是可以包含null值的,并且一個表中可以有多個unique constraint而primarykey在一個表中只能有一個.并且不能有null值】二、針對約束創建有兩種不同的思想 第一、創建標的時候一同將約束創建了 第二、你的表已經創建好了,向表中添加約束 三、下面我就一一的介紹他們 一、 primary key 主鍵約束 兩

2、種寫法 在已經創建的表中添加約束 解釋:添加約束的時候一定要修改表故用(alter修改) Alter table table1 Add primary key (列名1,列名2) 同表一起創建 Create table table1 (列名1 數據類型 是否為空 primary key , 列名1 數據類型 是否為空 ) 上面的是兩種情景為一個字段設置主鍵,接下來是以多個列作為主鍵。 Create table table1 ( 列名1 數據類型 是否為空, 列名2 數據類型 是否為空, 列名3 數據類型 是否為空, Primary key (列名1 ,列名2) ) 二、Check約束 這個和主

3、鍵約束差不多 Alter table table1 Add unique(列名) 三、外鍵約束 好多的同學一直也都不理解外鍵約束,到底什么才是外鍵?主鍵在那個表上?外鍵在那個表上?用T-SQL語句寫的時候是主表在前,還是外間表在前?等等一系列的問題! 接下來我講給大家說說這個主外鍵到底怎么弄的。 其實,主外鍵之間正如它的名字一樣,他們之間有一個主從關系,一個主表,一個從表,主表上面設置的是主鍵,從表上面設置的是外鍵(foreign key),主鍵表中的數據發生變化的時,外鍵(foreign key)表的數據立刻就發生改變。 向已有的表中添加一個主鍵(沒有就是添加,添加就是修改表) Alter

4、table table1 Add foreign key (列名1)references table2(列名2) 創建表的時候一同創建外鍵 Create table table1 (列名4 數據類型 是否為空 primary key, 列名3 數據類型 是否為空, 列名1 數據類型 references table2 (列名2) ) 注: Table1外鍵表 Table2主鍵表 列名1是主表列 列名2是外鍵表列 最一般常用的是主表的列和外鍵表的列的字段是一樣的 一般多為ID 可以作為主鍵的。這是兩個之間的交互。 四、Check約束 他也是基于一個表中的約束,限定表中列直接愛你數據的參照關系。

5、向一個以創建的表中添加約束 Alter tabel table1 Add constraint 約束名 check(列名對于列的限制條件) 多是一些可以找到范圍的數據,例如年齡,身高,體重。 五、default 默認約束 他是一個對于某一個值的約束,他是唯一的一個用for關聯詞的句子 向表中添加一個默認約束 Alter tabletable1 Add default 默認值for 列名 六、刪除約束 刪除約束也是對于表的修改故: Alter table table1 Drop constraint 約束名 注:上面就是我所理解的一些約束。想要記住他們并不難 1 開頭的一般都是 alter ta

6、ble 表名 或是create table 表名 2 在已有的表中添加約束用 alter 3 與表同時創建用 create 4 他們所有的關鍵字: 主鍵 約束:primary key 唯一性約束:unique 外鍵 約束:froeign key.references(參照).兩個表之間的關系,該是互相參照 查詢 約束:. constraint(約束).check對字段查詢,對字段約束 默認 約束:.default.for(給). 將前面默認的值 給 后邊的字段ORACLE約束總結2012-05-13 08:36 by 瀟湘隱者, 682 visits, 收藏, 編輯你對OR

7、ACLE約束的了解如何?比較模糊還是相當透徹?如果你對下面幾個問題了如指掌的話,恭喜你,你已經對約束掌握得比較好了,不用看這篇文章了。ORACLE的約束有啥功能作用? 有哪些類型約束(不同版本ORACLE是否不同)?視圖有約束嗎?約束是否會影響SQL性能? 約束信息存儲在哪些系統視圖、數據字典中?約束能否修改名稱?能否禁用約束?延遲約束有啥好處. 約束定義約束是強加在表上的規則或條件。確保數據庫滿足業務規則。保證數據的完整性。當對表進行DML或DDL操作時,如果此操作會造成表中的數據違反約束條件或規則的話,系統就會拒絕執行這個操作。約束可以是列一級別的 也可以是表級別的。定義約束時沒

8、有給出約束的名字,ORACE系統將為該約束自動生成一個名字,其格式為SYS_Cn,其中n為自然數(強烈建議各位在創建表或增加約束時,給約束定義名稱。). 約束功能 約束的功能:實現一些業務規則,防止無效的垃圾數據進入數據庫,維護數據庫的完整性(完整性指正確性與一致性)。從而使數據庫的開發和維護都更加容易。 約束分類約束分為6類: 非空(NOT NULL)約束、 唯一(UNIQUE)約束、主鍵(PRIMARY KEY)約束、外鍵(FOREIGN KEY)約束、條件(CHECK)約束、REF約束。 非空(NOT NULL)約束:顧名思義,所約束的列不能為NU

9、LL值。否則就會報錯 唯一(UNIQUE)約束:在表中每一行中所定義的這列或這些列的值都不能相同。必須保證唯一性。否則就會違法約束條件。主鍵(PRIMARY KEY)約束:唯一的標識表中的每一行,不能重復,不能為空。 創建主鍵或唯一約束后,ORACLE會自動創建一個與約束同名的索引(UNIQUENES為UNIQUE唯一索引)。需要注意的是:每個表只能有且有一個主鍵約束。外鍵(FOREIGN KEY)約束:用來維護從表(Child Table)和主表(Parent Table)之間的引用完整性. 外鍵約束是個有爭議性的約束,它一方面能夠維護數據庫的數據一致性,數據的完整性。防止錯誤的垃

10、圾數據入庫; 另外一方面它會增加表插入、更新等SQL性能的額外開銷,不少系統里面通過業務邏輯控制來取消外鍵約束。例如在數據倉庫中,就推薦禁用外鍵約束。條件(CHECK)約束:表中每行都要滿足該約束條件。條件約束既可以在表一級定義也可以在列一級定義。在一列上可以定義任意多個條件約束。REF約束的定義:REF column by definition references an object in another object type or in a relational table. A REF constraint lets you further describe the relation

11、ship between the REF column and the object it references. ORACLE 11 數據庫的約束類型如下:                                           ORACLE 10 數據庫的約束類型如下:在oracle 官方文檔C(check constraint on a table)

12、P(primary key)U(unique key)R(referential integrity)V(with check option, on a view)O(with read only, on a view)CCheck constraint on a tablePPrimary keyUUnique keyRReferential integrityVWith check option, on a viewOWith read only, on a viewHHash expressionFConstraint that involves a REF columnSSupplem

13、ental logging對于H、S類型,尚不清楚情況,而且從上面我在11g數據庫實驗結果看,也沒發現這兩種類型。(有了解的朋友可以告知一二)約束命名規范約束名稱建議自己定義一套命名規則,否則使用系統生成的約束名,很難能把它和對應的表、字段聯系起來。非空約束 NN_表名_列名 唯一約束 UK_表名_列名主鍵約束 PK_表名外鍵約束 FK_表名_列名條件約束 CK_表名_列名默認約束 DF_表名_列名如果約束名稱超過32位長度,建議應該縮寫表名,而不應用NN_表名_數字。不過具體視情況而定,很多時候 DF_表名_列名 這樣命名,往往超出了32字符。所以有時候需要縮寫表面或是采用其它規則

14、。 約束操作約束管理 創建各類約束先看一下如何創建主鍵約束CREATE TABLE "DM"."DEPT" ( "DEPTNO" NUMBER(2,0) PRIMARY KEY, "DNAME" VARCHAR2(14), "LOC" VARCHAR2(13) ) TABLESPACE "TBS_DM_DAT" ; COMMENT ON TABLE "DM"."DEPT" IS '部門表' COMME

15、NT ON COLUMN "DM"."DEPT"."DEPTNO" IS '部門編號' COMMENT ON COLUMN "DM"."DEPT"."DNAME" IS '部門名稱' COMMENT ON CLOUMN "DM"."DEPT"."LOC" IS '部門所在地方'此時它的約束名稱是系統創建的。如圖所示:  如果我們以下面的腳本創建,此時

16、約束如下所示  1 CREATE TABLE "DM"."DEPT" 2 ( 3 "DEPTNO" NUMBER(2,0), 4 "DNAME" VARCHAR2(14) , 5 "LOC" VARCHAR2(13) , 6 CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO") USING INDEX TABLESPACE TBS_DM_IN 7 ) TABLESPACE "TBS_DM_DAT&quo

17、t; ; 8 9 10 11 12 COMMENT ON TABLE "DM"."DEPT" IS '部門表'13 14 COMMENT ON COLUMN "DM"."DEPT"."DEPTNO" IS '部門編號'15 16 COMMENT ON COLUMN "DM"."DEPT"."DNAME" IS '部門名稱'17 18 COMMENT ON CLOUMN "DM&q

18、uot;."DEPT"."LOC" IS '部門所在地方'19      如果一個表的約束類型比較多,你會看到一堆SYS_CN這樣的約束,如果不仔細核對后面的字段,很難一眼看出約束類型、約束對應字段。主鍵約束的限制文檔原文如下: (翻譯在下) Restrictions on Primary Key Constraints Primary constraints are subject to the following restrictions:A table or vi

19、ew can have only one primary key.一個表或視圖有且只有一個主鍵None of the columns in the primary key can be LOB, LONG, LONG RAW, VARRAY, NESTED TABLE, BFILE, REF, TIMESTAMP WITH TIME ZONE, or user-defined type. However, the primary key can contain a column of TIMESTAMP WITH LOCAL TIME ZONE.主鍵字段不能為LOB、LOG、LOG RAW、V

20、ARRAY、NESTED TABLE、BFILE、REF、TIMESTAMP WITH TIME ZONE或用戶定義類型。然而它可以包含TIMESTAMP WITH LOCAL TIME ZONE類型的字段。The size of the primary key cannot exceed approximately one database block.主鍵大小不能超過一個數據塊大小。A composite primary key cannot have more than 32 columns.主鍵組合鍵不能超過32列。You cannot designate the same colum

21、n or combination of columns as both a primary key and a unique key.你不能指定一列或組合列既是主鍵又是唯一鍵。You cannot specify a primary key when creating a subview in an inheritance hierarchy. The primary key can be specified only for the top-level (root) view.創建一個繼承層次結構中的子視圖時,你不能指定一個主鍵。主鍵可以唯一指定的頂層(根)視圖。外鍵約束ALTER TABL

22、E childTableADD CONSTRAINT FK_xxxx_xxxFOREIGH KEY(columnName)REFERENCES parentTalbe(primaryKeyColumn) ON DELETE CASCADE|SET NULL; ON DELETE SET NULL子句:當主表中的一行數據被刪除時,Oracle系統會自動地將所有從表中依賴于它的數據記錄的外鍵改成空值;ON DELETE CASCADE:當主表中的一行數據被刪除時,Oracle系統會自動地將所有從表中依賴于它的數據記錄刪除;注:如果在外鍵定義中使用了ON DELETE SET NULL 或

23、ON DELETE CASCADE,無論刪除操作是在父表這一端還是子表這一端都不會產生違反引用完整性的問題,但是卻留下了安全隱患。這兩個子句要謹慎使用,只有在不得已時使用,謹記謹記!外鍵約束對DML與DDL的影響:INSERT:只有操作是在子表或從表這一端時才會產生違反引用完整性約束的問題,父表則不然。DELETE:只有操作是在父表或主表這一端時才會產生違反引用完整性約束的問題,子表則不然。UPDATE:子表父表直接操作都會違反引用完整性約束。兩種解決方法:1)先更新子表的引用列為空,再更新父表的主鍵的列的值,然后把子表的引用列更新成新的父表的值;2)使用ON DELETE SET NULL,

24、先更新父表,然后將子表外鍵為空的記錄更新為新的值。DDL語句:DROP TABLE與TRUNCATE TABLE,操作父表,違反引用完整性約束,子表則不然。外鍵約束的限制:Restrictions on Foreign Key Constraints Foreign key constraints are subject to the following restrictions:None of the columns in the foreign key can be of LOB, LONG, LONG RAW, VARRAY, NESTED TABLE, BFILE, REF, TIME

25、STAMP WITH TIME ZONE, or user-defined type. However, the primary key can contain a column of TIMESTAMP WITH LOCAL TIME ZONE.外鍵字段不能為LOB, LONG, LONG RAW, VARRAY, NESTED TABLE, BFILE, REF, TIMESTAMP WITH TIME ZONE, or user-defined type類型,主鍵可以包含數據類型為TIMESTAMP WITH LOCAL TIME ZONE的字段。The referenced uniqu

26、e or primary key constraint on the parent table or view must already be defined.引用唯一或主鍵約束,必須是父表中已經定義的。A composite foreign key cannot have more than 32 columns.外鍵的組合列不能超過32列。The child and parent tables must be on the same database. To enable referential integrity constraints across nodes of a distrib

27、uted database, you must use database triggers. See CREATE TRIGGER.字表和父表必須在同一個數據庫。分布式數據庫中,外鍵不能跨節點,但觸發器可以If either the child or parent object is a view, then the constraint is subject to all restrictions on view constraints. See "View Constraints".You cannot define a foreign key constraint i

28、n a CREATE TABLE statement that contains an AS subquery clause. Instead, you must create the table without the constraint and then add it later with an ALTER TABLE statement.你不能在CREATE TABLE語句中包含AS子查詢子句定義一個外鍵約束。相反,你必須創建一個沒有約束的表,然后添加ALTER TABLE語句。加上一些類似其它約束的限制條件約束非空約束非空約束的限制:1: 你不能在視圖約束上指定字段為NULL或NOT

29、 NULL值2: 你不能指定一個對象的屬性為NULL或NOT NULL。相反,而應使用的IS NOT NULL條件CHECK約束條件約束中的條件與查詢語句中的條件相同,但是不能包括以下內容:1)CURRVAL,NETXTVAL,LEVEL和ROWNUM這樣的偽列(PSEUDOCOLUMNS);2)引用其它行中值的查詢語句;3)SYSDATE,USER,USERENV和UID的函數調用。文檔原文如下:Restrictions on NOT NULL Constraints NOT NULL constraints are subject to the following restric

30、tions:You cannot specify NULL or NOT NULL in a view constraint.You cannot specify NULL or NOT NULL for an attribute of an object. Instead, use a CHECK constraint with the IS NOT NULL condition.唯一約束唯一約束的限制:文檔原文如下:Restrictions on Unique Constraints Unique constraints are subject to the following restr

31、ictions:None of the columns in the unique key can be of LOB, LONG, LONG RAW, VARRAY, NESTED TABLE, OBJECT, REF, TIMESTAMP WITH TIME ZONE, or user-defined type. However, the unique key can contain a column of TIMESTAMP WITH LOCAL TIME ZONE.當字段類型為LOB、LOG、LONG RAW、 VARRAY、NESTED TABLE、OBJECT、REF、TIMEST

32、AMP、用戶定義類型時,不能在字段上定義唯一性約束。當數據類型為TIMESTAMP WITH LOCAL TIME ZONEA composite unique key cannot have more than 32 columns.組合字段定義的唯一索引,字段個數不能超過32個You cannot designate the same column or combination of columns as both a primary key and a unique key.你不能指定同一字段或組合字段即為主鍵又是唯一鍵You cannot specify a unique key wh

33、en creating a subview in an inheritance hierarchy. The unique key can be specified only for the top-level (root) view.約束管理刪除約束ALTER TABLE DM.EMPDROP CONSTRAINT SYS_C00115525;CASCADE子句用來刪除存在有完整性關系的約束。當然你也可以用如下語法ALTER TABLE DM.EMPDROP UNIQUE (COMM);添加約束 添加非空約束ALTER TABLE DM.EMPMODIFY(MGR CONSTRAI

34、NT CK_EMP_MGR NOT NULL);添加其他約束ALTER TABLE DM.EMPADD CONSTRAINT CK_EMP_SAL CHECK(SAL > 0 AND SAL <20000);重命名約束ALTER TABLE METAONE.T1RENAME CONSTRAINT SYS_C0059699 TO PK_T1約束維護禁用約束ALTER TABLE 表 DISABLE CONSTRAINT 約束名 CASCADE;ALTER TABLE DM.EMPDISABLE CONSTRAINT UK_EMP_COMM;ALTER TABLE TEST DISAB

35、LE PRIMARY KEY CASCADE;參數CASCADE子句用來關閉存在有完整性關系的約束,比如DISABLE一個主鍵,如果沒有CASCADE子句就會出錯,此時使用CASCADE子句DISABLE主鍵可以將該主鍵與相關外鍵一起DISABLE掉。使用的情況:例如在數據庫系統中大規模裝入數據時,為了系統的效率您不得不犧牲數據的一致性來關閉一些約束,甚至刪除一些約束將主表主鍵禁止的同時,也將禁止依賴于此主鍵的外鍵禁止了使用上面腳本禁用約束的時候會刪除索引,如果你想禁用約束的時候,保留索引,可以使用如下腳本(當然你再啟用約束的時候會重新重建索引,這對大表顯然開銷相當大) ALTER

36、TABLE DM.EMPDISABLE CONSTRAINT UK_EMP_COMM KEEP INDEX; 啟用約束如果關閉主鍵約束時使用了CASCADE,此時使用ENABLE不會將主鍵約束與外鍵約束同時打開,只能對主鍵約束與外鍵約束分別使用ENABLE CONSTRAINT 子句打開。推遲約束Deferring Constraint Checks當前事務的Constraint Checks全部推遲SET CONSTRAINTS ALL DEFERRED;SET CONSTRAINT XXX DEFERRED;當前會話的Constraint ChecksALTER SSSSION

37、SET CONSTRAINTS ALL deferred;ALTER SSSSION SET CONSTRAINT xxx deferred;約束信息 SELECT * FROM DBA_CONSTRAINTS;SELECT * FROM ALL_CONSTRAINTS;SELECT * FROM USER_CONSTRAINTS;SELECT * FROM DBA_CONS_COLUMNS;SELECT * FROM ALL_CONS_COLUMNS;SELECT * FROM USER_CONS_COLUMNS;約束有四種狀態:ENABLE、VALID、INVALID、DISAB

38、LE約束的檢查機制  IMMEDIATE語句級:Oracle performs its constraint checking after the statement has been completely executed.  DEFERRED(事務級):A constraint is deferred if the system checks that it is satisfied only on commit. If a deferred constraint is violated, then commit causes the transac

39、tion to rollback;(推遲到事務提交時才檢查約束,謹慎使用) 使用約束建議  關于約束的使用建議,網上有這么一些建議,我覺得挺有用的。大家可以參考一下     1、如果在Oracle提供的幾種約束和自定義的程序(觸發器、過程或函數)兩者之間有選擇化,應盡可能使用Oracle的約束;    2、應該在創建表的時候就定義好所需的各種Oracle約束。如果沒有的話,應盡可能早地加上所需要的Oracle約束,這樣會使系統更可靠,更容易維護;(這個視具體情況而言)  &#

40、160; 3、Oracle系統進行過多的約束檢查會大大的降低Oracle數據庫系統的效率; oracle筆記 (21) 主鍵約束 (2012-01-05 21:43:48)轉載標簽: 主鍵約束 數據類型 數據修改 雜談分類: DataBase一、主鍵約束:1.創建主鍵的同時,定義主鍵約束:語法:create table 表名 (列名1 數據類型1 primary key,列名2 數據類型2,.);SQL> create table example (id number primary key, na

41、me varchar2(20); Table created SQL> create table example2 (id number,name varchar2(20) ,primary key (id,name); Table created SQL> desc example2;Name Type         Nullable Default Comments - - - - - ID   NUMBER 

42、0;                               NAME VARCHAR2(20)                

43、0;        2.創建表后,添加主鍵約束:語法:alter table 表名 add primary key (列名1,列名2,.);可以多列構成主鍵。如:SQL> alter table example2 drop primary key;  -刪除主鍵 Table altered SQL> alter table example2 add primary key (id,name); -添加主鍵 Table altered3.為主鍵命名:顯式命名主鍵:語

44、法:alter table 表名 add constraint 約束名稱 primary key (列名1,列名2 ,.);SQL> alter table example2 drop primary key; Table altered SQL> alter table example2 add constraint pk_example primary key (id);再看主鍵約束:SQL> select table_name,constraint_name,constraint_type,status  2  from

45、 user_constraints where table_name='EXAMPLE2' TABLE_NAME                     CONSTRAINT_NAME                CONS

46、TRAINT_TYPE STATUS- - - -EXAMPLE2                       PK_EXAMPLE                     P &

47、#160;             ENABLED4.修改主鍵約束:4.1 禁用/啟用主鍵: alter table 表名 disable/enable primary key;注:禁用后可插入違法數據,但有違法數據時無法啟用主鍵,將違法數據修改才可以。SQL> alter table example2 disable primary key; Table altered SQL> alter table example2

48、enable primary key; Table altered4.2 重命名主鍵:語法:alter table 表名 rename constraint 原主鍵名稱 to 新主鍵名稱4.3 主鍵與索引:當oarcle創建主鍵時,會自動創建一個與主鍵同名的索引。索引并不會隨著主鍵的刪除而刪除,也不會為重命名而改變。查看信息:SQL> select index_name,table_name,column_name  2  from user_ind_columns  3  where index_name='

49、PK_EXAMPLE' INDEX_NAME                     TABLE_NAME                     COLUMN_NAME- - -P

50、K_EXAMPLE                     EXAMPLE2                       IDoracle筆記 -外鍵約束 (2

51、012-01-06 09:47:02)轉載標簽: 外鍵約束 級聯刪除 參照完整性 級聯更新 雜談分類: DataBase一、外鍵約束簡介:外鍵的主要作用是保證數據的參照完整性,主表中有數據時,才可以在從表上插入相應的數據。外鍵支持的列,必須是主鍵列,以便獲得唯一記錄。1.1 創建外鍵約束:語法:alter table 表名 add constraint 約束名 foreign key (外鍵列名)references 主表 (主表主鍵列);如:先創建customer表:SQL> create table customer (&#

52、160; 2   customer_id number primary key,  3   customer_name varchar2(20),  4   customer_phone varchar2(20),  5   customer_address varchar2(50)  6   ); Table created再創建purchase_order表:SQL> create ta

53、ble purchase_order(  2    order_id number primary key,  3    product_name varchar2(20),  4    product_quantity number,  5    customer_id number  6   ); Table created添加外鍵:SQL&g

54、t; alter table purchase_order  2   add constraint fk_purchase_order  3   foreign key (customer_id)  4   references customer(customer_id); Table altered查看外鍵約束信息:SQL> select table_name ,constraint_name,constraint_type,r_constraint_nam

55、e  2   from user_constraints  3   where table_name='PURCHASE_ORDER' TABLE_NAME                     CONSTRAINT_NAME      &#

56、160;         CONSTRAINT_TYPE R_CONSTRAINT_NAME- - - -PURCHASE_ORDER                 SYS_C005501              &

57、#160;     P               PURCHASE_ORDER                 FK_PURCHASE_ORDER         &#

58、160;    R               SYS_C005500二、級聯更新與級聯刪除:為了保護數據的參照完整性提供2種校驗類型即時校驗(immediate) 和 延遲校驗(deferred),默認為即時校驗。延遲校驗是當整個事務結束時(commit),才驗證數據的完整性。1.級聯更新:語法:alter table 表名 add constraint 外鍵名稱 foreign key (外鍵列) referen

59、ces 主表名(主表主鍵列)deferrable initially deferred; SQL> alter table purchase_order  2  drop constraint fk_purchase_order;  -刪除外鍵SQL> alter table purchase_order  2  add constraint fk_purchase_order  3  foreign key (customer_id)  4  

60、;references customer (customer_id)  5  deferrable initially deferred; Table altered2.級聯刪除:在創建外鍵時直接指定級聯刪除,不用在刪除時聲明要級聯刪除。alter table 表名 add constraint 外鍵名稱 foreign key(外鍵列)references 主表名(主表主鍵列)on delete cascade; SQL> alter table purchase_order  2  drop constr

61、aint fk_purchase_order  3   Table alteredSQL> alter table purchase_order  2  add constraint fk_purchase_order  3  foreign key (customer_id)  4  references customer(customer_id)  5  on delete cascade; Table altere

62、d三、外鍵約束的相關操作:1.重命名:SQL> alter table purchase_order rename constraint fk_purchase_order to fk_po;2.禁用/啟用外鍵:在數據庫遷移時用到,否則會降低執行效率。SQL> alter table purchase_order disable constraint fk_po; Table altered SQL> alter table purchase_order enable constraint fk_po; Table altered3.刪除外鍵:S

63、QL> alter table purchase_order  2  drop constraint fk_po;  oracle筆記-唯一性約束 (2012-01-06 10:45:30)轉載標簽: 唯一性 約束 雜談分類: DataBase一、創建唯一性約束:alter table 表名 add constraint 約束名稱 unique (列名1、列名2.)查表:SQL> desc customer;Name       &#

64、160;     Type         Nullable Default Comments - - - - - CUSTOMER_ID      NUMBER                                 CUSTOMER_NAME    VARCHAR2(20) Y             &

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論