是否可以在 MariaDB 的 SELECT IF 中 运行 INSERT

Is it possible to run an INSERT inside a SELECT IF in MariaDB

我正在尝试 运行 基于 IF 查询结果的 INSERT 查询。我尝试了各种语法。我不想使用 stored procedure 只是一个简单的查询。

这个有效:

select IF ( select sum(price) from my_table ) > 1000, 
    'high price',
    'low price'
);

这甚至适用于 SELECT 查询。

select IF ( select sum(price) from my_table ) > 1000, 
    ( select something  ), 
    ( select something else )
);

但是当我尝试用 INSERT 替换其中一个 SELECT 时,出现语法错误。

select IF ( select sum(price) from my_table ) > 1000, 
    ( select something  ), 
    ( insert something )
);

我将 insert something 作为一个独立的查询进行了测试,它运行良好。 但是可以在 IF 表达式中使用它吗?

不,这是不可能的,除非你在程序块中(使用 stored procedure)然后你可以这样做

IF(( select sum(price) from my_table ) > 1000)
BEGIN 
    ( select something  );
    ( insert something );
END