我们说我有两张桌子A和B. 表B具有引用表A的主键的外键。 并且外键具有删除级联'约束
我也在使用Java和JDBC来访问这个数据库。
如何知道受删除级联约束影响的表B的行数? 我必须在Java Application中获取该数字。 连接对象或某些东西是否有任何返回它的参数或方法?
答案 0 :(得分:1)
要在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 ;