SQL-通过引用删除联接表中的两个主键
我有三张桌子:SQL-通过引用删除联接表中的两个主键,sql,join,foreign-keys,primary-key,cascade,Sql,Join,Foreign Keys,Primary Key,Cascade,我有三张桌子: 用户-->主键=用户id 帐户-->主键=帐户\u id 用户\帐户\加入\表-->外键=用户\ id,外键=帐户\ id 当我只知道用户id时,如何从所有3个表中删除所有关联条目? 一个用户可以有许多帐户,我想删除用户和所有帐户 使用一条SQL语句,只知道用户id。可以使用级联删除s,但如果不使用它,则使用事务来确保删除的完整性: BEGIN TRANSACTION [Tran1] BEGIN TRY declare @userId int = 1; --yo
使用一条SQL语句,只知道用户id。可以使用
级联删除
s,但如果不使用它,则使用事务来确保删除的完整性:
BEGIN TRANSACTION [Tran1]
BEGIN TRY
declare @userId int = 1; --your userId
declare @accountIds table (id int);
insert into @accountIds
select accountId from user_account where userId = @userId;
delete from user_account where userId = @userId;
delete from [user] where id = @userId;
delete from account where id in (select id from @accountIds);
COMMIT TRANSACTION [Tran1]
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION [Tran1]
END CATCH
什么是数据库管理系统?引用完整性是否强制执行?为什么“使用一条SQL语句”?如何处理不同用户的帐户?您的问题需要更加清晰,还需要一个数据库标签。