SQL資料庫基礎之串聯刪除和串聯更新

來源:互聯網
上載者:User
串聯刪除

刪除包含主索引值的行的操作,該值由其它表的現有行中的外鍵列引用。在串聯刪除中,還刪除其外索引值引用刪除的主索引值的所有行。文法:

FOREIGN KEY(COLUMN[,...n])REFERENCES referenced_table_name[(ref_column[,...n])][ON DELETE cascade][ON UPDATE cascade]

注釋:column:列名referenced_table_name:外鍵參考的主鍵表名稱ref_name:外鍵要參考的表的主鍵列on delete:刪除級聯on update:更新級聯

SQL串聯刪除——刪除主表同時刪除從表——同時刪除具有主外鍵關係的表

--建立類別表CREATE TABLE category(id INT IDENTITY(1,1) PRIMARY KEY,[name] VARCHAR(20) NOT NULL )--建立新聞表CREATE TABLE news(id INT IDENTITY(1,1) PRIMARY KEY,title VARCHAR(10) NOT NULL,[content] text NOT NULL,createTime datetime NOT NULL,caId INT NOT NULLFOREIGN KEY (caId) REFERENCES category(id) ON DELETE cascade )--建立評論表CREATE TABLE comment(id INT IDENTITY(1,1) PRIMARY KEY,[content] text NOT NULL,createTime datetime NOT NULL,userIp VARCHAR(15) NOT NULL,newsId INT NOT NULLFOREIGN KEY (userId) REFERENCES news(id) ON DELETE cascade

關係圖如下:

一個新聞類別對應著0個或者多個新聞,一個新聞對應著0個或者多個評論。在建立這三張表時,同時建立了news表到category的外主鍵約束和串聯刪除,以及comment表到news表的外主鍵約束和串聯刪除。這樣的話,只要刪除category表中的記錄,對應著其它表中的記錄也會跟著刪除。

通過觸發器設定串聯刪除

例子同上。在建立表的時候不設定串聯刪除,而是通過觸發器實現。在category表中建立instead of觸發器,實現串聯刪除。

USE [NewsSystem]GO/****** Object:  Trigger [dbo].[trigCategoryDelete]    Script Date: 03/06/2012 20:28:03 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER TRIGGER [dbo].[trigCategoryDelete]ON [dbo].[category] instead OF DELETEAS BEGINDECLARE @caId INTSELECT @caId=id FROM deleted--刪除評論DELETE comments WHERE newsId IN (SELECT newsId FROM news WHERE caId=@caId)--刪除新聞DELETE news WHERE caId=@caId--刪除類別DELETE category WHERE id=@caIdEND

這樣在執行對category表中記錄進行刪除的時候,觸發器執行,就會刪除對應表中的記錄,實現串聯刪除。

串聯更新與串聯刪除類似,不再贅述。原文連結:http://www.zblog.us/programing/sql/sql-delete-update.html
| 趙傑的部落格

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.