數(shù)據(jù)庫表添加外鍵約束 在oracle數(shù)據(jù)庫中怎樣創(chuàng)建主外鍵關(guān)系?
在oracle數(shù)據(jù)庫中怎樣創(chuàng)建主外鍵關(guān)系?需要依賴多個表來創(chuàng)建主鍵和外鍵。方法如下:創(chuàng)建主表:創(chuàng)建表斯科特設(shè)計(jì)部(deptno number(2,0)參數(shù)鍵,dName VARCHAR2(14),LO
在oracle數(shù)據(jù)庫中怎樣創(chuàng)建主外鍵關(guān)系?
需要依賴多個表來創(chuàng)建主鍵和外鍵。方法如下:
創(chuàng)建主表:
創(chuàng)建表斯科特設(shè)計(jì)部(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ù)時(shí)提示違反了PRIMARY KEY約束,不能在表中插入重復(fù)鍵。但是我插入的鍵的確是表中沒有的?。?/h2>
表示在表中插入主鍵是主鍵約束。通常,存在以下情況:
在物理表中插入重復(fù)鍵。
查看數(shù)據(jù)庫。要插入的表沒有現(xiàn)有主鍵,因此不能重復(fù)插入。
在程序?qū)嶓w集中插入了重復(fù)的密鑰。
這更難檢查。通常,程序使用數(shù)據(jù)集/數(shù)據(jù)表或?qū)嶓w集(LINQ to SQL,EF技術(shù))。在插入時(shí),它首先進(jìn)入實(shí)體集,并將實(shí)體集中的數(shù)據(jù)更新到數(shù)據(jù)庫中,以實(shí)現(xiàn)持久性。在相應(yīng)的數(shù)據(jù)表中插入重復(fù)的鍵也是不可行的
!同一事務(wù)中的兩個插入。
在編寫程序時(shí),如果在同一事務(wù)中插入兩次,自然會導(dǎo)致主鍵約束。錯誤發(fā)生后,它將被回滾,因此無法插入任何內(nèi)容。在非事務(wù)中,將插入一個,并在第二次插入時(shí)報(bào)告錯誤。
事實(shí)上,同一事務(wù)中的兩個插入可以插入到物理表或程序?qū)嶓w集中。在任何情況下,都會出現(xiàn)相同的結(jié)果。