mysql - 如何使用 PROCEDURE 在 MySQL 上运行多个查询?

标签 mysql stored-procedures

在 MySQL 中为多个查询创建一个 PROCEDURE 的正确方法是什么,就像针对 SQL 所做的那样?

CREATE OR REPLACE PROCEDURE foo
IS
BEGIN
  -- The create sentence goes here. For example:
  -- EXECUTE IMMEDIATE
  -- 'CREATE TABLE bar (...)';

  -- The update sentence goes here
  -- EXECUTE IMMEDIATE
  -- 'UPDATE bar SET ...';

  -- The drop/delete sentence goes here.
  -- EXECUTE IMMEDIATE
  -- 'DROP TABLE bar;'
END;

最佳答案

在 MySQL 中,只需将 3 个查询插入到您的过程中。您需要之前定义一个不同的分隔符,否则引擎将在第一个 ; 处终止过程定义,这将使其不完整。因此,请更改为其他任何内容,例如 $//

DELIMITER //
CREATE PROCEDURE your_proc()
BEGIN
  create ... ;
  update ... ;
  drop ... ;
END //
DELIMITER ;

关于mysql - 如何使用 PROCEDURE 在 MySQL 上运行多个查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31026677/

相关文章:

c# - 使用 Entity Framework,我应该在存储过程中使用 RETURN 还是 SELECT?

mysql - 如果 MySQL 中不存在如何创建过程

c# - 使用 LINQ toSQL 从存储过程返回新插入的行 ID

php - Javascript 与 PHP 和 MySQL 未定义

php - 根据条件更新MySQL记录

php - 使用 Wordpress 建立数据库连接时出错

mysql - 如何优化服务器中的 SQL?

php - 在 for 循环中运行 mysql 查询的意外 T_STRING

postgresql - 学习 PostgreSQL 存储过程的最佳方法?

sql-server - 解析数据库中的所有存储过程