chap6_7.html
来自「Oracle资料大集合」· HTML 代码 · 共 379 行 · 第 1/2 页
HTML
379 行
<tr><td colspan="2"><img src="../../../images/dotclear.gif" width=6 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.operatingsystems.html"><font face="verdana,helvetica" size="1" color="000000"><b>Operating Systems</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=6 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.userinterfaces.html"><font face="verdana,helvetica" size="1" color="000000"><b>User Interfaces</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=6 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.groupwareandcollaboration1.html"><font face="verdana,helvetica" size="1" color="000000"><b>Groupware & Collaboration</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=6 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.contentmanagement.html"><font face="verdana,helvetica" size="1" color="000000"><b>Content Management</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=6 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.productivityapplications1.html"><font face="verdana,helvetica" size="1" color="000000"><b>Productivity Applications</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=6 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.hardware1.html"><font face="verdana,helvetica" size="1" color="000000"><b>Hardware</b></font></td></tr><tr><td colspan="2"><img src="../../../images/dotclear.gif" width=6 height=12 alt="" border="0"></td></tr><tr><td><img src="../../../images/arrow.gif" width=10 height=17 alt="" border="0"></td><td><a href="http://www.itlibrary.com/reference/dir.funandgames1.html"><font face="verdana,helvetica" size="1" color="000000"><b>Fun & Games</b></font></td></tr></table><!-- <IMG SRC="/images/leftnav.gif" WIDTH=111 HEIGHT=404 ALT="nav" border="0" ISMAP USEMAP="#leftnav"> --><p><a href="http://www.earthweb.com/jobs/" target=new><IMG SRC="../../../images/dice-105x30.gif" WIDTH=105 HEIGHT=30 ALT="EarthWeb Direct" border="0"></a><a href="http://www.earthwebdirect.com/" target=new><IMG SRC="../../../images/earthwebdirect.gif" WIDTH=105 HEIGHT=30 ALT="EarthWeb Direct" border="0"></a><a href="http://www.fatbrain.com/home.html?from=UUX592" target=new><IMG SRC="../../../images/fatbrain.gif" WIDTH=105 HEIGHT=30 ALT="Fatbrain" border="0"></a><a href="http://auctions.earthweb.com" target=new><IMG SRC="../../../images/auctions_105x30.gif" WIDTH=105 HEIGHT=30 ALT="Auctions" border="0"></a><a href="http://www.supportsource.com" target=new><IMG SRC="../../../images/ss2000sneak2.gif" WIDTH=105 HEIGHT=30 ALT="Support Source Answers" border="0"></a><P><b><font face="verdana,helvetica" size="2">EarthWeb sites</FONT></b><br> <FONT SIZE="1"> <a href="http://www.crossnodes.com"><font face="verdana,helvetica" size="1" color="000000">Crossnodes</font></a><br> <a href="http://www.datamation.com"><font face="verdana,helvetica" size="1" color="000000">Datamation</font></a><br> <a href="http://www.developer.com"><font face="verdana,helvetica" size="1" color="000000">Developer.com</FONT></A><br> <a href="http://www.dice.com"><font face="verdana,helvetica" size="1" color="000000">DICE</font></a><br> <a href="http://www.earthweb.com"><font face="verdana,helvetica" size="1" color="000000">EarthWeb.com</font></a><br> <a href="http://www.earthwebdirect.com"><font face="verdana,helvetica" size="1" color="000000">EarthWeb Direct</font></a><br> <a href="http://www.erphub.com"><font face="verdana,helvetica" size="1" color="000000">ERP Hub</font></a><br> <a href="http://www.gamelan.com"><font face="verdana,helvetica" size="1" color="000000">Gamelan</font></a><br> <a href="http://www.gocertify.com"><font face="verdana,helvetica" size="1" color="000000">GoCertify.com</font></a><br> <a href="http://www.htmlgoodies.com"><font face="verdana,helvetica" size="1" color="000000">HTMLGoodies</font></a><br> <a href="http://www.intranetjournal.com"><font face="verdana,helvetica" size="1" color="000000">Intranet Journal</font></a><br> <a href="http://www.itknowledge.com"><font face="verdana,helvetica" size="1" color="000000">IT Knowledge</font></a><br> <a href="http://www.itlibrary.com"><font face="verdana,helvetica" size="1" color="000000">IT Library</font></a><br> <a href="http://www.javagoodies.com"><font face="verdana,helvetica" size="1" color="000000">JavaGoodies</font></a><br> <a href="http://www.jars.com"><font face="verdana,helvetica" size="1" color="000000">JARS</font></a><br> <a href="http://www.javascripts.com"><font face="verdana,helvetica" size="1" color="000000">JavaScripts.com</font></a><br> <a href="http://www.opensourceit.com"><font face="verdana,helvetica" size="1" color="000000">open source IT</font></a><br> <a href="http://www.roadcoders.com"><font face="verdana,helvetica" size="1" color="000000">RoadCoders</font></a><br> <a href="http://www.Y2Kinfo.com"><font face="verdana,helvetica" size="1" color="000000">Y2K Info</font></a></FONT></td><!--End Left Navigation column --><!-- spacer column --><TD width="40"><img src="../../../images/dotclear.gif" WIDTH="40" HEIGHT="1" border=0></TD><!--Begin Content Column --><TD VALIGN="TOP" width="500"><P><blockquote><b><font size="+1">6.7 How do I匒dd cascading delete functionality?</font></b><p><B>Problem</B><p>I get an error when my application tries to delete data from parent tables, as records in the parent table are referenced by records from other child tables. I know that when I use referential integrity constraints, I need to have a cascade delete functionality to automatically delete all dependent records from the child table, whenever I delete referenced records from the parent table. How do I add a cascading delete functionality?<p><B>Technique</B><p>The ON DELETE CASCADE is an important feature of the foreign key constraint. The ON DELETE CASCADE can be optionally specified in the REFERENCES clause while defining a foreign key constraint. If it is not specified, a parent table record cannot be deleted until all referencing child table records are deleted first. The ON DELETE CASCADE option allows deletions of parent table rows, as Oracle will automatically delete corresponding rows in the child table that have references to the parent table record being deleted. As no constraint specification is allowed in the ALTER TABLE匨ODIFY clause, it cannot be used to add an ON DELETE CASCADE option to an already existing foreign key constraint. The constraint has to be dropped and created again with the ALTER TABLE匒DD syntax or the entire table can be created anew with a CREATE TABLE statement.<p><B>Steps</B><p><B>1.</B> Run SQL*Plus and connect as the WAITE user account. CHP6_20.SQL, shown in <A HREF="image/06oht20.gif" TARGET="_blank">Figure 6.20</A>, drops the EMP06 table and creates the table again, this time with the ON DELETE CASCADE option, and also creates sample data used in this How-To.<p><code><b>SQL> START CHP6_20<p>SQL> SET ECHO OFF<p>Table dropped.<p>Table created.<p>1 row created.<p>1 row created.<p>1 row created.</b></code><p>When a department is deleted from the DEPT06 parent table, all associated records in the EMP06 child table should also be deleted. Sample records are created in both tables to demonstrate the process.<p>2. Run the statements in CHP6_21.SQL to query the DEPT06 and EMP06 tables, as shown in <A HREF="image/06oht21.gif" TARGET="_blank">Figure 6.21</A>.<p>There are two records in the EMP06 pointing to the DEPT06 record with DEPT_NO=10. Now execute the CHP6_22.SQL file, as shown in <A HREF="image/06oht22.gif" TARGET="_blank">Figure 6.22</A>, to delete the record in the DEPT06 parent table with DEPT_NO=10.<p>As the ON DELETE CASCADE option was specified in Step 1 while defining the foreign key constraint on EMP06 table, the two records in the EMP06 table pointing to the DEPT06 record with DEPT_NO=10 are deleted by Oracle automatically. Confirm this by running CHP6_21.SQL to query both tables again, as shown in <A HREF="image/06oht23.gif" TARGET="_blank">Figure 6.23</A>.<p>The record with a DEPT_NO=10 was deleted from the DEPT06 table. The corresponding two records in the EMP06 table with a DEPT_NO=10 were also automatically deleted.<p><B>How It Works</B><p>Cascading deletes can be defined with the ON DELETE CASCADE while creating a foreign key constraint. Properly defined cascade deletes ensure referential integrity is maintained in the database whenever DELETE statements are issued against referenced tables. Step 1 creates the EMP06 table with an ON DELETE CASCADE defined with its foreign key constraint. Step 2 demonstrates the automatic deletion of associated child table records from the EMP06 table, by deleting a record from the DEPT06 parent table.<p><B>Comments</B><p>Cascading deletes are ideal for enforcing referential integrity, and defining them with foreign key constraints is fairly easy. The cascading deletes come to action only when a DELETE statement is issued on a parent table record. Cascading deletes can be also performed by using DELETE triggers. See How-To 13.5 for a thorough discussion on how DELETE triggers can be used for cascading deletes. Depending on the size of tables, complexity of relationships, and performance requirements, cascading deletes can be implemented using different approaches: in the application itself, or ON DELETE CASCADE with foreign key constraints, or DELETE triggers. <p><!-- </td></td></tr></table> --></td></td></tr></table><!-- begin footer information --><MAP NAME="footer"><AREA SHAPE=RECT COORDS="0,0,62,26" HREF="http://www.itlibrary.com/"><AREA SHAPE=RECT COORDS="62,0,135,26" HREF="http://www.developer.com/about/"><AREA SHAPE=RECT COORDS="135,0,199,26" HREF="http://www.itlibrary.com/search/"><AREA SHAPE=RECT COORDS="200,0,274,26" HREF="http://www.itlibrary.com/subscribe/"><AREA SHAPE=RECT COORDS="275,0,335,25" HREF="http://www.developer.com/contact/adinfo.html"><AREA SHAPE=RECT COORDS="335,0,417,25" HREF="http://www.developer.com/contact/"><AREA SHAPE=RECT COORDS="418,0,467,26" HREF="http://www.developer.com/about/faq.html"></MAP><P><table width="640" cellpadding="0" cellspacing="0" border="0"><tr><TD WIDTH="130"></TD><td width="468"><IMG SRC="../../../images/footer/footerfile.gif" ALT="footer nav" width="467" height="26" BORDER="0" usemap="#footer" ismap></td></tr><tr><TD WIDTH="130"></TD><td width="468"> <font face=arial,helvetica size="1"> Use of this site is subject certain <a href="http://www.developer.com/legal/">Terms & Conditions.</a><br>Copyright (c) 1996-1999 <A HREF="http://www.earthweb.com/">EarthWeb, Inc.</A>. All rights reserved. Reproduction in whole or in part in any form or medium without express written permission of EarthWeb is prohibited.<a href="http://www.earthweb.com/corporate/privacy.html">Please read our privacy policy for details.</a></td></tr></table></BODY></HTML>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?