Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql中删除父行时如何更新外键值?_Mysql_Foreign Keys - Fatal编程技术网

mysql中删除父行时如何更新外键值?

mysql中删除父行时如何更新外键值?,mysql,foreign-keys,Mysql,Foreign Keys,我想在删除父行时更新外键值 phpmyadmin中有一个“SET NULL”选项,但是我不想将值设置为NULL,而是想将其设置为我想要的值 我如何才能做到这一点?没有像set null选项那样的自动魔法内置方法,但您可以始终使用特定的业务逻辑编写触发器: DELIMITER // CREATE TRIGGER parent_delete_tr BEFORE DELETE ON parent FOR EACH ROW BEGIN UPDATE children

我想在删除父行时更新外键值

phpmyadmin中有一个“SET NULL”选项,但是我不想将值设置为NULL,而是想将其设置为我想要的值


我如何才能做到这一点?

没有像
set null
选项那样的自动魔法内置方法,但您可以始终使用特定的业务逻辑编写触发器:

DELIMITER //

CREATE TRIGGER parent_delete_tr
BEFORE DELETE
    ON parent FOR EACH ROW

    BEGIN
        UPDATE children
        SET    parent_id = 123 -- Or some other logic
        WHERE  parent_id = OLD.id;
    END; //

DELIMITER ;

你可以用一个触发器。您可以包括您的表模式吗?