【发布时间】:2018-12-05 18:22:01
【问题描述】:
在 PostgreSQL 中,prepared statement 与 SQL 或 PL/pgSQL 函数在用途、优缺点方面有何区别?我们什么时候用哪个?
在这个非常简单的示例中,它们的工作方式是否相同,对吗?
CREATE TABLE foo (id INT, name VARCHAR(80));
CREATE FUNCTION myfunc1(INT, VARCHAR(80)) RETURNS void AS '
INSERT INTO foo VALUES ($1, $2);
' LANGUAGE SQL;
SELECT myfunc1(3, 'ben');
CREATE FUNCTION myfunc2(INT, VARCHAR(80)) RETURNS void AS '
BEGIN
INSERT INTO foo VALUES ($1, $2);
END' LANGUAGE plpgsql;
SELECT myfunc2(3, 'ben');
PREPARE fooplan (INT, VARCHAR(80)) AS
INSERT INTO foo VALUES($1, $2);
PREPARE
EXECUTE fooplan(3, 'ben');
【问题讨论】:
标签: sql postgresql prepared-statement plpgsql sql-function