创建预备语句:
语法:
prepare prepareName(paramList{int,char,varchar,boolean,date...}) as
sqlstatement;
prepare 创建一个预备语句。一个预备语句是服务器端的对象,可以用于优化性能。在执行 prepare 语句的时候,指定的查询被
分析、重写、规划。
当随后发出 execute 语句的时候,预备语句就只需要执行了。因此,分析、重写、规划阶段都只执行一次,而不是每次都要执
行一次。
预备语句可以接受参数:在它执行的时候替换到查询中的数值。可以在一个预备语句里(即sqlstatement)按照位置来引用参数,
比如 $1, $2 等。
可以指定一个相应的参数数据类型列表。如果一个参数的数据类型没有被指定或声明为unknown,那么其类型将根据该参数所使
用的实际上下文环境进行推测(如果有可能的话)。当执行该语句的时候,将在 execute 语句中为这些参数指定实际值。
预备语句只是在当前数据库会话的过程中存在。如果客户端退出,那么预备语句就会被清除,即一个预备语句不能被多个客户
端使用。
执行预备语句:
execute prepareName(实参列表);
清除预备语句:
语法:
deallocate prepare prepareName;
显示所有当前会话中可用的预备语句:
select * from pg_prepared_statements;
案例1:
预备语句的参数类型齐全
创建预备语句:
prepare insertEmployee(int,varchar,varchar,date,date) as
insert into employees values($1,$2,$3,$4,$5);
执行预备语句:
execute insertEmployee(4,'Jerry','Hunk','1991-02-16','2002-01-01');
查看结果:成功插入一条数据
select * from employees;
案例2:
预备语句的参数类型不齐全
创建预备语句:
prepare insertEmployee(int,varchar) as
insert into employees values($1,$2,$3,$4,$5);
执行预备语句:
execute insertEmployee(5,'Marry','Losi','1993-03-28','2008-01-01');
查看执行结果:成功插入一条数据
select * from employees;
PostgreSQL的预备语句
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...