日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
數(shù)據(jù)庫級(jí)聯(lián)刪除與更新操作詳解(數(shù)據(jù)庫cascads)

在數(shù)據(jù)庫設(shè)計(jì)中,數(shù)據(jù)之間往往存在著關(guān)聯(lián)關(guān)系。例如,在一個(gè)圖書借閱系統(tǒng)中,一本圖書與借閱記錄之間就存在著關(guān)聯(lián)關(guān)系。當(dāng)我們刪除一本圖書時(shí),必須同時(shí)刪除與之關(guān)聯(lián)的借閱記錄,否則就會(huì)導(dǎo)致數(shù)據(jù)不一致。為了解決這個(gè)問題,數(shù)據(jù)庫提供了一種叫做級(jí)聯(lián)刪除(也叫級(jí)聯(lián)更新)的功能,它可以在刪除(或更新)一個(gè)記錄時(shí),自動(dòng)刪除(或更新)與之關(guān)聯(lián)的記錄,從而保證數(shù)據(jù)的完整性和一致性。

創(chuàng)新互聯(lián)建站長期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為赤壁企業(yè)提供專業(yè)的網(wǎng)站制作、成都做網(wǎng)站,赤壁網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

一、什么是級(jí)聯(lián)刪除和級(jí)聯(lián)更新?

級(jí)聯(lián)刪除和級(jí)聯(lián)更新是指在刪除或更新一個(gè)記錄時(shí),數(shù)據(jù)庫自動(dòng)將與之相關(guān)的記錄刪除或更新的功能。這個(gè)功能非常實(shí)用,它可以幫助我們簡(jiǎn)化數(shù)據(jù)庫的操作,并且保證數(shù)據(jù)的一致性。

以一個(gè)例子來說明:假設(shè)我們有一個(gè)學(xué)生-課程的關(guān)系表,存儲(chǔ)學(xué)生與課程之間的選課關(guān)系。其中,學(xué)生表和課程表分別為:

學(xué)生表(Student)

|字段名 |類型 |長度 |說明 |

|—- |—– |—– |—– |

|id |int |11 |學(xué)生ID |

|name |varchar |50 |學(xué)生姓名 |

|age |int |3 |學(xué)生年齡 |

課程表(Course)

|字段名 |類型 |長度 |說明 |

|—- |—– |—– |—– |

|id |int |11 |課程ID |

|name |varchar |50 |課程名稱 |

|credit |real |4,2 |學(xué)分 |

學(xué)生-課程關(guān)系表(StuCourse)

|字段名 |類型 |長度 |說明 |

|—- |—– |—– |—– |

|id |int |11 |關(guān)系ID |

|stu_id |int |11 |學(xué)生ID,外鍵 |

|course_id |int |11 |課程ID,外鍵 |

這里的“stu_id”和“course_id”字段都是外鍵,它們分別指向了學(xué)生表和課程表中的一條記錄。因此,它們之間具有關(guān)聯(lián)關(guān)系。如果我們要?jiǎng)h除學(xué)生表中的某個(gè)記錄,那么這個(gè)學(xué)生在“學(xué)生-課程關(guān)系表”中的所有記錄也必須被刪除,否則就會(huì)導(dǎo)致數(shù)據(jù)不一致。

在這種情況下,我們就可以使用級(jí)聯(lián)刪除功能。這個(gè)功能可以讓我們?cè)趧h除學(xué)生表中的一條記錄時(shí),自動(dòng)刪除“學(xué)生-課程關(guān)系表”中與之相關(guān)的記錄。具體來說,我們可以在定義外鍵的時(shí)候指定級(jí)聯(lián)規(guī)則。如果指定了級(jí)聯(lián)刪除功能,那么當(dāng)刪除學(xué)生表中的一條記錄時(shí),數(shù)據(jù)庫會(huì)自動(dòng)找到這個(gè)學(xué)生在“學(xué)生-課程關(guān)系表”中的所有記錄,并將其刪除。

同樣的,級(jí)聯(lián)更新功能也可以起到相同的作用。在更新一條記錄的時(shí)候,如果相關(guān)的記錄也需要更新,那么我們就可以使用級(jí)聯(lián)更新功能來自動(dòng)更新這些記錄。

二、如何設(shè)置級(jí)聯(lián)刪除和級(jí)聯(lián)更新?

在MySQL數(shù)據(jù)庫中,我們可以通過定義外鍵來設(shè)置級(jí)聯(lián)刪除和級(jí)聯(lián)更新的功能。定義外鍵的語法格式為:

“`sql

ALTER TABLE 表名 ADD CONSTRNT 外鍵名 FOREIGN KEY (列名) REFERENCES 關(guān)聯(lián)表名(關(guān)聯(lián)列名) [ON DELETE/UPDATE CASCADE]

“`

其中“ON DELETE/UPDATE CASCADE”就是用來定義級(jí)聯(lián)刪除和級(jí)聯(lián)更新的關(guān)鍵字。如果我們想要啟用級(jí)聯(lián)刪除,就可以將關(guān)鍵字設(shè)置為“CASCADE”,如果想要啟用級(jí)聯(lián)更新,就可以將關(guān)鍵字設(shè)置為“SET NULL”或“CASCADE”。

例如,在上例中,我們可以使用以下的語句來定義“學(xué)生-課程關(guān)系表”中的外鍵,并啟用級(jí)聯(lián)刪除和級(jí)聯(lián)更新功能:

“`sql

ALTER TABLE StuCourse ADD CONSTRNT fk_stu_id FOREIGN KEY(stu_id) REFERENCES Student(id) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE StuCourse ADD CONSTRNT fk_course_id FOREIGN KEY(course_id) REFERENCES Course(id) ON DELETE CASCADE ON UPDATE CASCADE;

“`

這樣一來,當(dāng)我們刪除學(xué)生表或者課程表中的一條記錄時(shí),這個(gè)學(xué)生或者課程在“學(xué)生-課程關(guān)系表”中的所有記錄也會(huì)被刪除或更新,從而保證了數(shù)據(jù)的一致性和完整性。

三、級(jí)聯(lián)刪除和級(jí)聯(lián)更新的注意事項(xiàng)

在使用級(jí)聯(lián)刪除和級(jí)聯(lián)更新功能時(shí),我們需要注意以下幾點(diǎn):

1. 數(shù)據(jù)庫必須支持外鍵和級(jí)聯(lián)刪除和級(jí)聯(lián)更新功能。

2. 推薦使用級(jí)聯(lián)刪除和級(jí)聯(lián)更新功能來保證數(shù)據(jù)的一致性和完整性。

3. 在使用級(jí)聯(lián)刪除和級(jí)聯(lián)更新功能時(shí),需要考慮到性能問題。如果一個(gè)表中有大量的記錄,同時(shí)還有多個(gè)與之相關(guān)的表,那么啟用級(jí)聯(lián)刪除和級(jí)聯(lián)更新功能會(huì)極大地影響數(shù)據(jù)庫的性能。因此,我們需要權(quán)衡利弊來決定是否啟用這個(gè)功能。

4. 在使用級(jí)聯(lián)刪除和級(jí)聯(lián)更新功能時(shí),需要避免死循環(huán)。如果兩個(gè)表之間存在著循環(huán)引用的關(guān)系,那么啟用級(jí)聯(lián)刪除和級(jí)聯(lián)更新功能可能會(huì)導(dǎo)致死循環(huán)的問題。

5. 在使用級(jí)聯(lián)刪除和級(jí)聯(lián)更新功能時(shí),需要特別注意數(shù)據(jù)的備份和恢復(fù)問題。如果我們?cè)跀?shù)據(jù)備份和恢復(fù)的時(shí)候沒有考慮到級(jí)聯(lián)刪除和級(jí)聯(lián)更新的問題,那么就可能導(dǎo)致數(shù)據(jù)丟失或者不一致的問題。

綜上所述,級(jí)聯(lián)刪除和級(jí)聯(lián)更新是一種非常實(shí)用的功能,它可以幫助我們簡(jiǎn)化數(shù)據(jù)庫的操作,并且保證數(shù)據(jù)的一致性。在使用這個(gè)功能的時(shí)候,我們需要注意到以上幾點(diǎn),從而更好地保護(hù)我們的數(shù)據(jù)。

相關(guān)問題拓展閱讀:

  • 刪除數(shù)據(jù)庫多余數(shù)據(jù),但是數(shù)據(jù)庫表與表之間有關(guān)聯(lián)。請(qǐng)問如何刪除整條數(shù)據(jù)鏈?
  • 在oracle數(shù)據(jù)庫中刪除用戶drop user username cascade; 但是現(xiàn)在報(bào)錯(cuò)啊就高人
  • 一個(gè)圓柱體,如果它的高增加厘米,它的表面積就增加.平方厘米,這個(gè)圓柱體的底面半徑是多少?

刪除數(shù)據(jù)庫多余數(shù)據(jù),但是數(shù)據(jù)庫表與表之間有關(guān)聯(lián)。請(qǐng)問如何刪除整條數(shù)據(jù)鏈?

我知道可以用游標(biāo)來解決這個(gè)問題,一個(gè)伍賀一個(gè)的TRUNCATE,但是表之間是有約束的,必須得到表的約束關(guān)系才能做刪除的動(dòng)作,不然會(huì)報(bào)錯(cuò)的!表之間的依賴關(guān)系如何才能得到呢?這個(gè)好像是腔李派我這個(gè)問題擾團(tuán)的關(guān)鍵

因?yàn)閯h除是一個(gè)影響完整性的操作,有一個(gè)辦法,delete的時(shí)候后面加個(gè) ‘on delete cascasde’ 但是這是個(gè)級(jí)聯(lián)刪除毀毀,會(huì)把你關(guān)聯(lián)的數(shù)據(jù)鎮(zhèn)余散全部御氏刪除掉。

delete,具體視數(shù)據(jù)庫提示在寫

在oracle數(shù)據(jù)庫中刪除用戶drop user username cascade; 但是現(xiàn)在報(bào)錯(cuò)啊就高人

好吧!我?guī)湍闼阉飨碌玫揭韵聝?nèi)容

1. drop user出現(xiàn)問題

  報(bào)出以下錯(cuò)誤后退出

  ORA-00604: error occurred at recursive SQL level 1

  ORA-00942: table or view does not exist .

  關(guān)于 recursive SQL 錯(cuò)誤我們有必要做個(gè)簡(jiǎn)單說明。

  我們知道,當(dāng)我們發(fā)出一條簡(jiǎn)單的命令以后

  Oracle數(shù)據(jù)庫要在后臺(tái)解析這條命令,并轉(zhuǎn)換為Oracle數(shù)據(jù)庫的一系列后臺(tái)操作。

  這些后臺(tái)操作統(tǒng)稱為遞歸sql.

  比如create table這樣一條簡(jiǎn)單的DDL命令,Oracle數(shù)據(jù)庫在后臺(tái),實(shí)際上要把這個(gè)命令轉(zhuǎn)換為對(duì)于obj$,tab$,col$等底層表的插入簡(jiǎn)穗操作。Oracle所作的工作可能比我們有時(shí)候想的要復(fù)雜的多。

  2.跟蹤問題

  我們知道Oracle提供sql_trace的功能

  可以用于跟蹤Oracle數(shù)據(jù)庫的后臺(tái)遞歸操作。

  通過跟蹤文件,我們可以找到問題的所在

  以下是格式化(tkprof)后的輸出:

The following statement encountered a error during parse:

DELETE FROM SDO_GEOM_METADATA_TABLE WHERE SDO_OWNER = ‘WAPCOMM’

Error encountered: ORA-00942

Oracle把錯(cuò)誤信息首先呈現(xiàn)出來,我們看到ORA-00942錯(cuò)誤是由于

SDO_GEOM_METADATA_TABLE表/視圖不存在所致,問題由此可以定位。

  對(duì)于這一類的錯(cuò)誤,定位問題以后解決的方法就要依據(jù)具體問題原攔則卜因而定了。

  盯絕3.問題定位

  對(duì)于本案例,通過Metalink獲得以下解釋:

Problem Description

The Oracle Spatial Option has been installed and you are encountering

the following errors while trying to drop a user, who has no spatial tables,

connected as SYSTEM:

ERROR at line 1:

ORA-00604: error occurred at recursive SQL level 1

ORA-00942: table or view does not exist

ORA-06512: at line 7

A 942 error trace shows the failing SQL statement as:

DELETE FROM SDO_GEOM_METADATA_TABLE WHERE SDO_OWNER = ”

Solution Description

(1)

Create a synonym for SDO_GEOM_METADATA_TABLE under SYSTEM which points to

MDSYS.SDO_GEOM_METADATA_TABLE.

  對(duì)于本例,為MDSYS.SDO_GEOM_METADATA_TABLE創(chuàng)建一個(gè)同義詞即可解決,是相對(duì)簡(jiǎn)單的情況。

(2)

Now the user can be dropped connected as SYSTEM.

Related Documents

ORA-604 and ORA-942 Reported During DROP USER CASCA

4.實(shí)際處理

  MDSYS.SDO_GEOM_METADATA_TABLE為Spatial對(duì)象,如果未使用Spatial選項(xiàng),可以刪除

SQL> connect / as sysdbaConnected.

SQL> select * from dba_sdo_geom_metadata order by owner;

select * from dba_sdo_geom_metadata order by owner

*

ERROR at line 1:

ORA-00942: table or view does not exist

ORA-04063: view “MDSYS.DBA_SDO_GEOM_METADATA” has errors

SQL> select object_name from dba_objects where object_name like ‘%SDO%’;

OBJECT_NAME

ALL_SDO_GEOM_METADATA

ALL_SDO_INDEX_INFO

ALL_SDO_INDEX_METADATA

DBA_SDO_GEOM_METADATA

DBA_SDO_INDEX_INFO

DBA_SDO_INDEX_METADATA

….

DBA_SDO_GEOM_METADATA

DBA_SDO_INDEX_INFO

SDO_WITHIN_DISTANCE

USER_SDO_GEOM_METADATA

USER_SDO_INDEX_INFO

USER_SDO_INDEX_METADATA

88 rows selected.

SQL> drop user MDSYS cascade;

User dropped.

SQL> select owner,type_name from dba_types where type_name like ‘SDO%’;

no rows selected

SQL>

SQL> alter session set sql_trace=true;

Session altered.

SQL> drop user wapcomm;

User dropped.

SQL> alter session set sql_trace=false;

Session altered.

SQL> exit

Disconnected from Oracle8i Enterprise Edition Release 8.1.7.4.0 – 64bit Production

With the Partitioning option

erver Release 8.1.7.4.0 – 64bit Production

這時(shí)用戶得以順利drop

  5.一點(diǎn)總結(jié)

使用sql_trace可以跟蹤數(shù)據(jù)庫的很多后臺(tái)操作有利于我們發(fā)現(xiàn)問題的所在,很多時(shí)候,我們想要研究Oracle的內(nèi)部活動(dòng)或后臺(tái)操作,也可以通過sql_trace跟蹤,sql_trace/10046 是Oracle提供的最為有效的診斷工具之一。

  案例四:表更新時(shí)發(fā)生遞歸SQL2級(jí)失敗錯(cuò)誤

  問題描述:表更新的時(shí)候失敗了,并且生成了一條ORA錯(cuò)誤信息。這個(gè)錯(cuò)誤發(fā)生在遞歸SQL 2級(jí)。

  解決方案:不幸的是,這個(gè)錯(cuò)誤并不能告訴你Oracle數(shù)據(jù)庫在錯(cuò)誤發(fā)生的時(shí)候正要做什么。當(dāng)你執(zhí)行一條SQL語句的時(shí)候,Oracle數(shù)據(jù)庫會(huì)為你在幕后做很多事情。例如,考慮下面的SQL語句:

UPDATE emp SET sal = sal*1.05 WHERE empno=1001;

  這條SQL語句給號(hào)碼為1001的雇員漲5%的工資。當(dāng)你執(zhí)行這條語句的時(shí)候,Oracle查詢數(shù)據(jù)目錄來確定是否有這個(gè)表或者你是否使用了同義字。一旦它找到了數(shù)據(jù)庫對(duì)象,Oracle查詢數(shù)據(jù)字典來判斷你是否擁有訪問這個(gè)對(duì)象的權(quán)限。那么,Oracle到底是如何與數(shù)據(jù)字典進(jìn)行交互的呢?它執(zhí)行一條自己的SQL 語句。這些Oracle為你執(zhí)行的SQL語句被稱為“遞歸”SQL語句。你最初的SQL 語句是0級(jí)。Oracle為你執(zhí)行的遞歸SQL語句是1級(jí)。有時(shí)候,一條遞歸SQL語句又會(huì)引起自己的遞歸SQL語句,就是2級(jí)。

在你的案例中,有一個(gè)2級(jí)的遞歸SQL語句正在執(zhí)行,并且產(chǎn)生了問題。為了解決問題,你需要找出執(zhí)行的是什么遞歸SQL語句引起的錯(cuò)誤。要做到這一點(diǎn),你必須啟動(dòng)會(huì)話中的追蹤。

首先,執(zhí)行下面的SQL 語句:

ALTER SESSION SET sql_trace=TRUE;

  然后,執(zhí)行你的更新語句。你會(huì)看到ORA-604 錯(cuò)誤。接下來,執(zhí)行下面的語句:

ALTER SESSION SET sql_trace=FALSE;

現(xiàn)在到你為數(shù)據(jù)庫定義的USER_DUMP_DEST 起始參數(shù)上的路徑去。那里應(yīng)該有一個(gè)時(shí)間戳為當(dāng)前時(shí)間的文件。那個(gè)就是你生成的追蹤文件。你可以打開文件并檢查遞歸SQL語句,其中包括引起錯(cuò)誤的一條。

來源

可以通過10046事件去追蹤這條語句的執(zhí)行過程,估計(jì)是某張系統(tǒng)表出了問題

重新啟動(dòng)數(shù)據(jù)庫試試。不行就開啟trace功能,再查看trace文件看看問題出在哪里

一個(gè)圓柱體,如果它的高增加厘米,它的表面積就增加.平方厘米,這個(gè)圓柱體的底面半徑是多少?

50.24÷2÷3.14÷2

=25.12÷3.14÷2

=4(厘米)

底面周長是和顫胡:50.24÷2=25.12厘米

底喚攔面半徑是:洞塌25.12÷3.14÷2=4厘米

高是:4×2+2=10厘米

這個(gè)圓柱的體積是:3.14×4×4×10=502.4立方厘米

25.48

4cm

數(shù)據(jù)庫 cascads的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于數(shù)據(jù)庫 cascads,數(shù)據(jù)庫級(jí)聯(lián)刪除與更新操作詳解,刪除數(shù)據(jù)庫多余數(shù)據(jù),但是數(shù)據(jù)庫表與表之間有關(guān)聯(lián)。請(qǐng)問如何刪除整條數(shù)據(jù)鏈?,在oracle數(shù)據(jù)庫中刪除用戶drop user username cascade; 但是現(xiàn)在報(bào)錯(cuò)啊就高人,一個(gè)圓柱體,如果它的高增加厘米,它的表面積就增加.平方厘米,這個(gè)圓柱體的底面半徑是多少?的信息別忘了在本站進(jìn)行查找喔。

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


當(dāng)前文章:數(shù)據(jù)庫級(jí)聯(lián)刪除與更新操作詳解(數(shù)據(jù)庫cascads)
當(dāng)前URL:http://m.5511xx.com/article/cojpohe.html