else中的update语句

zhte4eai  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(406)

我想知道你是否可以在insert-into中的if-else中使用update语句,它看起来像这样:

INSERT INTO about
SELECT a1, b1, c1
FROM post a
WHERE IF(a.id NOT IN (SELECT b.id FROM category b), 
        TRUE,
        (UPDATE about c
        SET c.comments = a.comments
        WHERE a.status == 'active')

当前出现语法错误:
语法错误:意外的“(”(左括号)

语法错误:缺少“)”(右括号)
所以我很肯定你不能因为语法错误,但我错了吗?

bejyjqdl

bejyjqdl1#

您不能在mysql的where子句中进行更新。对于这样的问题,所有主要的关系数据库,包括mysql,都支持触发器——这意味着,您可以在某些表中发生更改后触发dml命令。
因此,在本例中,当您更改(插入/更新/删除)表中的某些内容时,可以定义一个可操作的dml。

delimiter ;;
create trigger test_trigger
before insert ON about
   write your logic for the update here
end ;;
delimiter ;

相关问题