如何使用 PROCEDURE 运行 对 MySQL 进行多次查询?
How to run multiple queries on MySQL using PROCEDURE?
在 MySQL 中为 SQL 进行的多个查询创建 PROCEDURE
的正确方法是什么?
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;
CREATE PROCEDURE foo
@LastName nvarchar(50),
@FirstName nvarchar(50)
AS
QUERY1; -- SELECT or whatever
QUERY2;
GO
在 MySQL 中只需将 3 个查询插入到您的过程中。您需要之前定义的不同分隔符,否则引擎将在第一个 ;
处终止过程定义,这会使它不完整。因此,更改为 $
或 //
等其他任何内容
DELIMITER //
CREATE PROCEDURE your_proc()
BEGIN
create ... ;
update ... ;
drop ... ;
END //
DELIMITER ;
在 MySQL 中为 SQL 进行的多个查询创建 PROCEDURE
的正确方法是什么?
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;
CREATE PROCEDURE foo
@LastName nvarchar(50),
@FirstName nvarchar(50)
AS
QUERY1; -- SELECT or whatever
QUERY2;
GO
在 MySQL 中只需将 3 个查询插入到您的过程中。您需要之前定义的不同分隔符,否则引擎将在第一个 ;
处终止过程定义,这会使它不完整。因此,更改为 $
或 //
DELIMITER //
CREATE PROCEDURE your_proc()
BEGIN
create ... ;
update ... ;
drop ... ;
END //
DELIMITER ;