创建数据库存储过程(Stored Procedure)的方法会因数据库类型(如 MySQL、SQL Server、Oracle、PostgreSQL 等)略有不同,但核心思想一致:把一组 SQL 语句封装成一个可重复调用的数据库对象。
下面按常见数据库分别说明,并给出示例。
存储过程是预先编译并存储在数据库中的一段 SQL 逻辑,可以:
DELIMITER $$
CREATE PROCEDURE 过程名([IN|OUT|INOUT] 参数名 数据类型)
BEGIN
-- SQL 语句
END$$
DELIMITER ;
DELIMITER $$
CREATE PROCEDURE GetUserById(IN uid INT)
BEGIN
SELECT * FROM user WHERE id = uid;
END$$
DELIMITER ;
CALL GetUserById(1);
CREATE PROCEDURE 过程名
@参数名 数据类型
AS
BEGIN
-- SQL 语句
END
CREATE PROCEDURE GetUserById
@uid INT
AS
BEGIN
SELECT * FROM [user] WHERE id = @uid;
END
EXEC GetUserById 1;
CREATE OR REPLACE PROCEDURE 过程名(
参数名 IN 数据类型
) AS
BEGIN
-- SQL 语句
END;
CREATE OR REPLACE PROCEDURE GetUserById(
p_uid IN NUMBER
) AS
BEGIN
SELECT * FROM users WHERE id = p_uid;
END;
BEGIN
GetUserById(1);
END;
CREATE PROCEDURE 过程名(参数名 数据类型)
LANGUAGE plpgsql
AS $$
BEGIN
-- SQL 语句
END;
$$;
CREATE PROCEDURE GetUserById(uid INT)
LANGUAGE plpgsql
AS $$
BEGIN
SELECT * FROM users WHERE id = uid;
END;
$$;
CALL GetUserById(1);
参数模式
事务控制
权限
CREATE PROCEDURE 权限EXECUTE 权限调试
我可以直接帮你写可用的存储过程代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。