在 MySQL/MariaDB 中执行任意程序代码

Execute arbitrary procedural code in MySQL/MariaDB

在 T-SQL 中,我可以声明变量,或者在存储过程内部或外部编写我希望的任何过程代码。在 PostgreSQL 中,我可以这样说……

DO $$
DECLARE foo INT DEFAULT 0;
BEGIN
  -- Blah blah
END;
$$;

这会执行一些任意的程序代码。 MySQL 中是否有类似的东西,或者我是否必须创建一个 "throwaway" 存储过程? (这不是我的用例的世界末日,但我很好奇是否有更好的方法。)

不幸的是 MySQL 没有在存储过程主体之外执行程序语句的功能...所以答案是肯定的,您必须创建一个常规存储过程来 运行 您的代码。