數(shù)據(jù)庫表添加外鍵約束 在oracle數(shù)據(jù)庫中怎樣創(chuàng)建主外鍵關系?
在oracle數(shù)據(jù)庫中怎樣創(chuàng)建主外鍵關系?需要依賴多個表來創(chuàng)建主鍵和外鍵。方法如下:創(chuàng)建主表:創(chuàng)建表斯科特設計部(deptno number(2,0)參數(shù)鍵,dName VARCHAR2(14),LO
在oracle數(shù)據(jù)庫中怎樣創(chuàng)建主外鍵關系?
需要依賴多個表來創(chuàng)建主鍵和外鍵。方法如下:
創(chuàng)建主表:
創(chuàng)建表斯科特設計部(deptno number(2,0)參數(shù)鍵,dName VARCHAR2(14),LOC VARCHAR2(13))
創(chuàng)建表emp(empno number(4,0)主鍵,ename VARCHAR2(10),job VARCHAR2(9),Mgr number(4,0),更新日期,Sal NUMBER(7,2)、COMM NUMBER(7,2)、DEPTNO NUMBER(2,0)、CONSTRAINT FKDEPTNO foreign key(DEPTNO)references Dept(DEPTNO))
C#插入數(shù)據(jù)時提示違反了PRIMARY KEY約束,不能在表中插入重復鍵。但是我插入的鍵的確是表中沒有的?。?/h2>
表示在表中插入主鍵是主鍵約束。通常,存在以下情況:
在物理表中插入重復鍵。
查看數(shù)據(jù)庫。要插入的表沒有現(xiàn)有主鍵,因此不能重復插入。
在程序實體集中插入了重復的密鑰。
這更難檢查。通常,程序使用數(shù)據(jù)集/數(shù)據(jù)表或實體集(LINQ to SQL,EF技術)。在插入時,它首先進入實體集,并將實體集中的數(shù)據(jù)更新到數(shù)據(jù)庫中,以實現(xiàn)持久性。在相應的數(shù)據(jù)表中插入重復的鍵也是不可行的
!同一事務中的兩個插入。
在編寫程序時,如果在同一事務中插入兩次,自然會導致主鍵約束。錯誤發(fā)生后,它將被回滾,因此無法插入任何內容。在非事務中,將插入一個,并在第二次插入時報告錯誤。
事實上,同一事務中的兩個插入可以插入到物理表或程序實體集中。在任何情況下,都會出現(xiàn)相同的結果。