當前位置:首頁 » 編程語言 » 級聯刪除sql語句

級聯刪除sql語句

發布時間: 2023-05-19 08:52:18

『壹』 如何在sql中實現級聯刪除

分類: 電腦/網路 >> 程序設計 >> 其他編程閉蔽滲語言
問題描述:

我想做一個並唯簡易的單板塊的論壇,有帖子表和回復表,回復表裡有帖子編號欄位和回復編號欄位,帖子編號是外鍵。有一個功能就是管理員把一條留言刪除後相應的回復自動刪除。請問在sql中如何設置

解析:

也可以用建立關系來實現,打開SQL中的「關系圖」->建立關系圖,然轎脊後選擇你要建立關系的表,如果你的主鍵和外鍵已經建立好,則會自由關聯,如果沒有就手工拖一下,接下來就是選擇「級聯更新相關欄位」和「級聯刪除相關欄位」即可。

『貳』 sql級聯刪除,及聯更新

alter table Borrow

Add constraint fk_Borrow_BorrowNo
Foreign key( BorrowNo) references BoroowList (BNo)
on update cascade --級聯返御更新
on delete cascade --級聯漏悉岩刪陸旦除

『叄』 SQL sever中要刪除兩個相關聯的表該怎麼進行級聯刪除

------解決方案-------------------------------------------------------- --1、建立一個觸發器(推薦)
create trigger on p for deleteas �0�2delete from spj where pno = (select pno from deleted)go--執行刪除delete from p where pname='螺絲'
--2、級聯刪除
alter table p add constraint pk_p_id primary key (pno)go--為tb創建外健,並指定級聯刪除
alter table spj add constraint fk_spj_aid foreign key (pno) references p(pno) on delete cascadego------解決方案----------------------------------------------------------推薦觸發器控制,可控性比較強
SQL code --1、建立一個觸發器(推薦) create trigger on p for delete as delete from spj where pno = (select pno from deleted) go --執行刪除 delete from p where pname='螺絲' --2、級聯刪除 alter table p add constraint pk_p_id primary key (pno) go --為tb創建外健,並指定級聯刪除 alter table spj add constraint fk_spj_aid foreign key (pno) references p(pno) on delete cascade go
------解決方案--------------------------------------------------------建立測試數據
SQL code if object_id('dbo.SPJ') is not null drop table dbo.SPJ; go if object_id('dbo.P') is not null drop table dbo.P; go create table dbo.P ( pno int not null primary key, pname nvarchar(20) not null ); go create table dbo.SPJ ( sno int not null primary key, pno int not null ); insert into dbo.P select 1, 'type-a' union all select 2, 'type-b' union all select 3, 'type-c'; go insert into dbo.SPJ select 1, 1 union all select 2, 1 union all select 3, 1 union all select 4, 2 union all select 5, 3 union all select 6, 3; go
------解決方案--------------------------------------------------------建議用外鍵約束
先刪除子表在刪除父表
------解決方案-------------------------------------------------------- �0�2個人建議用事務處理。

『肆』 級聯刪除

級聯刪除(cascade delete)隸屬於約束條件(constraint),因此,級聯刪除需要在約束條件中設置。

在 FOREIGN KEY 中加入 ON DELETE CASCADE 可以實現級聯刪除,但磨嘩是在執行 SQL 語瞎明行句時,SQL Server 返回結果為僅有一行數據受到影響,而實際在本例中有三行數據(槐升 STUDENT 中一行, ENROLLMENT 中兩行)受到影響,所以級聯刪除不會通知操作者其他表中是否有數據受到影響。

『伍』 對Sql Server中的表添加級聯更新和級聯刪除的幾種方法

觸發器方式: create trigger trg_A on A for update,delete as begin if exists(select 1 from inserted) update B set Name=(select Name from inserted) where Name=(select Name from deleted) else delete B where Name=(select Name from deleted) end go 要使用級聯性更新和刪除,用戶可以在Alter TABLE 語句的CONSTRAINT子句中使用ON Update CASCADE 和/或 ON Delete CASCADE 關鍵字。注意他們都必須是應用於外鍵的。 級聯更新和級聯刪除方式: Alter TABLE [dbo].[T_USERGROUP] ADD CONSTRAINT [FK_T_USERGROUP_T_ACCTTEMPLATE] FOREIGN KEY ( [ATNAME] ) REFERENCES [dbo].[T_ACCTTEMPLATE] ( [ATNAME] ) ON Update CASCADE ON Delete CASCADE

『陸』 刪除多條記錄,SQL語句怎麼寫

方法有三:
1.利用觸發器。
2.添加外鍵關系,並設置級聯刪除
3.先刪除評論,再刪除文章,最後刪除欄目,同時寫在一條SQL語句中即可
假如要刪除欄目id為1的所有相關信息
delete comment where articleid in (select articleid from article where categoryid=1) delete article where categoryid=1 delete category where categoryid=1

『柒』 sql 語句中的cascade怎麼用

你這是要級聯刪除?
你的用法是不正確的。你先了解一下cascade的乎扒用法。

級聯刪除
外鍵的級聯刪除:如果父表中的記錄被刪除,則子表中對應的記錄自動被刪除
父表——被外鍵引用的表
子表——引用滲肢父表中的鍵作為外鍵的表
解釋:
父表中刪除包含主鍵值的行的操作,該值由子表的現有行中的外鍵列引用。在級聯刪除中,刪除父表中的記錄時,同時刪除子表中外鍵引用此主健的記錄。
例:
employee 表中有員工的dept_id 引用department表中dept_id( 同時為deptartment主鍵 )作為外鍵,當department表(父表)中一個部門被刪除,employee表(子表)中引用這個部門的dept_id作為dept_id的記錄也自動被刪除。
語法:
Foreign Key
(column[,...n])
references referenced_table_name[(ref_column[,...n])]
[on delete cascade]
[on update cascade]
例子:
SQL級聯刪除——刪除主表同時刪除從表——同時刪除具有主外鍵關系的表
create table a(
id varchar(20) primary key,
password varchar(20) not null
)
create table b
(
id int identity(1,1) primary key,
name varchar(50) not null,
userId varchar(20),
foreign key (userId) references a(id) on delete cascade
)
表B創建了外碼userId 對應A的主碼ID,聲明了級聯刪除

測試數據:
insert a values ('11','aaa')
insert a values('23','aaa')
insert b values('da','11')
insert b values('das','11')
insert b values('ww','23')
刪除A表內id為『11』的數據,發現B表內userId 為「11」也叢頃世被資料庫自動刪除了,這就是級聯刪除
delete a where id='11'

『捌』 sql中級聯刪除,級聯更新是怎麼理解的

以使用的SqlServer為例,正攔在management studio中 打開對應資料庫的diagram,在相關表的任意一張上右鍵,選擇relationship,彈出如下對話框。

『玖』 sql server中如何級聯刪除

可以用下邊的方法,僅供參考:

--創建測試主表.ID是主鍵.
CREATETABLEtest_main(
idINTNOTNULL,
valueVARCHAR(10),
PRIMARYKEY(id)
);


--創建測試子表.
CREATETABLEtest_sub(
idINTNOTNULL,
main_idINT,
valueVARCHAR(10),
PRIMARYKEY(id)
);


--插入測試主表數據.
INSERTINTOtest_main(id,value)VALUES(1,'ONE');
INSERTINTOtest_main(id,value)VALUES(2,'TWO');

--插入測試子表數據.
INSERTINTOtest_sub(id,main_id,value)VALUES(1,1,'ONEONE');
INSERTINTOtest_sub(id,main_id,value)VALUES(2,2,'TWOTWO');

然後,創建外鍵,使用ONDELETECASCADE選項,刪除主表的時候,同時刪除子表

ALTERTABLEtest_subADDCONSTRAINTmain_id_consFOREIGNKEY(main_id)REFERENCEStest_mainONDELETECASCADE;

執行刪除:

DELETEFROMTEST_MAINWHEREID=1;

最後:

SELECT*FROMTEST_MAIN;

結果子表中就只有ID=2的記錄,也就說明級聯刪除成功。

『拾』 sql多表關聯刪除

刪除多表關聯數據的三種方法

1、級聯刪除

createtablea
(
idvarchar(20)primarykey,
passwordvarchar(20)notnull
)
createtableb
(
idintidentity(1,1)primarykey,
namevarchar(50)notnull,
userIdvarchar(20),
foreignkey(userId)referencesa(id)ondeletecascade
)



表B創建了外碼userId 對應A的主碼ID,聲明了級聯刪除

測試數據:

insertavalues('11','aaa')
insertavalues('23','aaa')
insertbvalues('da','11')
insertbvalues('das','11')
insertbvalues('ww','23')


刪除A表內id為『11』的數據,發現B表內userId 為「11」也被資料庫自動刪除了

deleteawhereid='11'


2、採用存儲過程

A表:AID Aname 主健:AID

B表:BID BelongAID Bname 主健:BID,外健:BelongAID

C表:CID BelongBID Cname 主健:CID,外健:BelongBID

D表:DID BelongCID Dname 主健:DID,外健:BelongCID

其中:

A表和B表通過A.AID和B.BelongAID 創建了外健關系

B表和C表通過B.BID和C.BelongBID 創建了外健關系

C表和D表通過C.CID和D.BelongCID 創建了外健關系


3、採用觸發器

刪除Class表中的一條記錄的同時刪除該記錄Class_No欄位值在Student表中對應的記錄。

CreateTriggerClass_delete
onClass
fordelete
as
begin
deletefromStudent
whereClass_No=(selectClass_Nofromdeleted)
end
熱點內容
ftp搭建win7 發布:2025-05-20 10:06:06 瀏覽:81
訪問堅果 發布:2025-05-20 10:06:02 瀏覽:393
ftpxlight 發布:2025-05-20 10:05:22 瀏覽:110
java的實驗報告 發布:2025-05-20 10:02:06 瀏覽:527
豪華配置高電動轎車有哪些 發布:2025-05-20 10:01:59 瀏覽:486
哪些電腦配置低 發布:2025-05-20 09:34:16 瀏覽:955
地板網站源碼 發布:2025-05-20 09:27:23 瀏覽:346
安卓視頻轉換器怎麼使用 發布:2025-05-20 09:20:52 瀏覽:544
telnet批量腳本 發布:2025-05-20 09:11:58 瀏覽:627
搭建jrebel伺服器 發布:2025-05-20 08:57:40 瀏覽:903