MYSQL - 在更新一个表时自动删除第二个表中的行

时间:2014-12-09 17:32:48

标签: mysql

我在关系1中有两个表:n

create table A (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    data VARCHAR(32),
    data2 INTEGER,
    INDEX (id)
);
CREATE TABLE B (
    A_id BINGINT,
    some_data DOUBLE,
    INDEX (A_id),
    FOREIGN KEY (A_id) REFERENCES A(id) ON DELETE CASCADE
);

如果我更新表A中的一行,那么我需要从表A中删除表B中具有相同id的所有记录。解决它的最佳方法是什么? 我不知道我是应该使用触发器还是事件。

1 个答案:

答案 0 :(得分:0)

您需要在表A上触发:

DELIMITER //

CREATE TRIGGER t BEFORE UPDATE ON A
FOR EACH ROW
BEGIN
  DELETE FROM B WHERE a_id = NEW.id;
END
//

DELIMITER ;