1
比方說,我有兩個表A和B. 表B有一個引用表A主鍵的外鍵。 而外鍵具有'關於刪除級聯'的約束。如何統計受級聯影響的行
而且我也使用Java和JDBC來訪問這個數據庫。
如何知道受刪除級聯約束影響的表B的行數? 我必須在Java應用程序中獲取數字。 連接對象或東西是否有任何返回它的參數或方法?
比方說,我有兩個表A和B. 表B有一個引用表A主鍵的外鍵。 而外鍵具有'關於刪除級聯'的約束。如何統計受級聯影響的行
而且我也使用Java和JDBC來訪問這個數據庫。
如何知道受刪除級聯約束影響的表B的行數? 我必須在Java應用程序中獲取數字。 連接對象或東西是否有任何返回它的參數或方法?
要在DELETE FROM語句後面執行操作,可以使用審計表和BEFORE DELETE觸發器。
// change type of deleted_id to your primary key's type.
create table deleted_audit (deleted_id BIGINT, dt TIMESTAMP, count INT);
DELIMITER $$
CREATE TRIGGER count_deleted BEFORE delete ON a
FOR EACH ROW
BEGIN
DECLARE count_items INT;
SELECT count(*) FROM b WHERE a_id=OLD.id INTO count_items;
INSERT INTO deleted_audit VALUES(OLD.id, NOW(), count_items);
END; $$
DELIMITER ;
所以,通過這種方式,我需要另一個查詢來獲取受影響的行數。我對嗎? – alegro
@alegro是的,你需要另一個查詢。您可以將所有內容包含在交易中。 – olegsv