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