sql刪除關聯表數據
刪除關聯表中信息時,要注意
順序
,一般先刪除從表,然後才是主表,也就是先刪除有
外鍵
的表,在刪除外鍵
來源
的那個表,否則會出現
錯誤
,
對於刪除符合要求的信息則和樓上一樣是:delete
from
從表
where
滿足的條件
delete
from
主表
where
滿足的條件
希望對你有用,誠邀交流,希望採納!
Ⅱ sql語句從主表刪除一條數據,並且把先關聯的多個子表數據也刪除
僅憑sql不可能實現,多條實現先刪從表再刪主表
樓主的需求解決方案
1.如果是編程實現,java框架hibernate的cascade可以模擬做到刪主去重
2.表中設置好級聯刪除
這樣設定好表後
可以實現刪主去重
oracle為例
alter
table
AAA
add
constraint
asd
foreign
key
(BBB)
references
CCC(DDD)
on
delete
cascade;
3.新增delete的行級觸發器
4.存儲過程
包含多條delete語句,使用時調用該過程
Ⅲ SQL 語句刪除問題同時刪除兩個表內關聯的數據
一個sql語句是沒辦法執行兩個刪除操作,如果你要實現上面的功能,有以下幾個選擇:
1.用外鍵關聯刪除,把B表的uid設成外鍵關聯A表的ID,並關聯刪除操作
2.用存儲過程,用事務來處理實現;
望採納!
Ⅳ SQL中怎麼刪除2張表中有關聯的數據信息
可以使用兩種方式
1:刪除子表數據,再刪除主表數據
2:如果主細表中建立了級聯刪除操作,直接刪除主表數據即可
Ⅳ 如何用一句sql刪除2個表中相關聯的數據(沒有外鍵)
為什麼一定要一句話呢?一個sql語句不能同時刪除兩張表,除非通過外鍵級聯刪除或者觸發器,最正常的做法當然是寫成2個sql語句,然後用一個trans來保證數據一致性,如果非要用一個sql語句,可以有一個變通方法,寫一側存儲過程,刪除兩張表,然後寫的一句sql是執行這個存儲過程
Ⅵ SQL 如何把兩個表相關聯的數據一同刪除
其實你這個問題最好用資料庫本身的外鍵解決。就是在子表建立指向父表的外鍵。當刪除主表數據時,只要加上delete語句加上 on cascade,所有子表引用的數據就刪除了。
Ⅶ 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
Ⅷ sql server資料庫怎樣同時刪除兩張表的數據
1、打開SQL Server 2008 並連接一個資料庫。