mybatis 使用MySql 簡單編寫 無需主外鍵 左外連接多表刪除 數據、級聯更新數據

   1.無主外鍵級聯刪除,主表(tb_userinfo)用戶表 

<!--刪除用戶那麼與之用戶相關聯的所有信息都將被刪除。根據用戶的unionid刪除所有相關數據  -->
    <delete id="deleteUserinfoByid">
     DELETE 
         tb_userinfo,
		 tb_attention,
		 tb_building,
		 tb_code,
		 tb_collection,
		 tb_information,
		 tb_recommend,
		 tb_records,
		 tb_forum
     FROM
	     tb_userinfo
		 LEFT JOIN tb_attention ON (tb_userinfo.unionid = tb_attention.unionids)
		 LEFT JOIN tb_building ON (tb_userinfo.account = tb_building.account)
		 LEFT JOIN tb_code ON (tb_userinfo.unionid = tb_code.unionid)
		 LEFT JOIN tb_collection ON (tb_userinfo.unionid = tb_collection.unionid OR tb_building.id = tb_collection.bid)
		 LEFT JOIN tb_information ON (tb_userinfo.unionid = tb_information.unionid)
		 LEFT JOIN tb_recommend ON (tb_userinfo.unionid = tb_recommend.unionid)
		 LEFT JOIN tb_records ON (tb_userinfo.unionid = tb_records.unionid)
		 LEFT JOIN tb_forum ON (tb_userinfo.unionid = tb_forum.unionid)
    WHERE
	     tb_userinfo.unionid = #{unionid}<!--條件,傳入的參數 -->
    </delete>

2,無主外鍵級聯更新,主表(tb_userinfo)用戶表

 UPDATE tb_userinfo u
		LEFT JOIN tb_borrow b ON (u.id = b.bid)<!-- 關聯條件爲用戶ID -->
		LEFT JOIN tb_borrow o ON (u.id = o.leid)
		LEFT JOIN tb_credit c ON (u.id = c.userid)
		LEFT JOIN tb_friend f ON (u.id = f.bid)
		LEFT JOIN tb_receipt r ON (u.id = r.userid)
	 SET u.username = #{username},<!--用戶名 -->
		 b.borrower = u.username,
		 b.identitycard=u.identitycard,
		 o.lender = u.username,
		 o.identitycards=u.identitycard,
		 c.username=u.username,
		 f.username=u.username,
		 r.username=u.username
	 WHERE
	       u.id = #{id}<!-- 根據用戶id -->

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章