PREPARE

Name

PREPARE -- ����һ��׼���õIJ�ѯ

Synopsis

PREPARE plan_name [ (datatype [, ...] ) ] AS statement

����

PREPARE ����һ����׼���õIJ�ѯ�� һ����׼���õIJ�ѯ�Ƿ������˵Ķ��󣬿��������Ż����ܡ� ��ִ�� PREPARE ����ʱ��ָ���IJ�ѯ����������д�Լ��滮�� ����󷢳� EXECUTE ����ʱ�� ��׼���õIJ�ѯ��ֻ��Ҫִ���ˡ���ˣ���������д���Լ��滮�׶ζ�ִֻ��һ�Σ�������ÿ�β�ѯִ�е�ʱ��Ҫִ��һ�Ρ�

׼���õIJ�ѯ���Խ��ܲ���������ִ�е�ʱ���滻����ѯ�е���ֵ�� Ҫ��һ��׼���õIJ�ѯ����������������Ҫ�� PREPARE ��������һ���������͵��б��ڲ�ѯ���������԰���λ����������Щ������ ���� $1��$2���ȡ� ��ִ�в�ѯ��ʱ���� EXECUTE �����Ϊ��Щ��������ʵ�ʵ���ֵ�� �ο� EXECUTE ��ȡ������Ϣ��

׼���õIJ�ѯ���ڱ��ش洢�ģ��ڵ�ǰ����������ֻ���ڵ�ǰ���ݿ�Ự�Ĺ����д��ڡ� ����ͻ����˳�����ô׼���õIJ�ѯ�ͻᱻ������������DZ����ڱ�����ʹ��֮ǰ���´����� ��Ҳ��ζ��һ��׼���õIJ�ѯ���ܱ����ͬʱ�����ݿ�ͻ���ʹ�ã� ���ǣ�ÿ���ͻ��˿��Դ��������Լ�����׼���õIJ�ѯ��ʹ�á���׼���õ��������� DEALLOCATE �����ֹ������

���һ���Ự׼������ִ�д������ƵIJ�ѯ����ô��׼���õIJ�ѯ���Ի������޶ȵ��������ơ� �����ѯ�dz����ӣ���Ҫ���ӵĹ滮������д����ô���ܲ�ཫ�dz����ԡ� ���磬�����ѯ�����������ӣ������ж��ֹ���Ҫ��Ӧ�á������ѯ�Ĺ滮����д��Լ򵥣� ��ִ�����������൱����ô��׼���õIJ�ѯ���������ƾͲ���ô���ԡ�

����

plan_name

��������ض�����׼���ò�ѯ���������֡���������һ���Ự����Ψһ�ģ� ��������ִ�л���ɾ��һ��ǰ��׼���õIJ�ѯ��

datatype

��׼���ò�ѯ��ij���������������͡�Ҫ����׼���ò�ѯ�ڲ��������������ʹ�� $1��$2���ȡ�

statement

�κ� SELECT��INSERT��UPDATE�� ���� DELETE ��ѯ��

ע��

��һЩ����£�PostgreSQL Ϊһ����׼���õIJ�ѯ���ɵIJ�ѯ�滮���ܻ����簴����ͨ�����ύ��ִ�еIJ�ѯ���ɵĹ滮�á� ������Ϊ�ò�ѯ�ڱ��滮��ʱ��Ҳ���Ż�����ͼ�ж����Ų�ѯ�滮��ʱ�򣩣� �ڲ�ѯ���������κβ�����ʵ����ֵ�������ɼ��� PostgreSQL �ڱ����ռ����ݷֲ���ͳ�ƣ� ���ҿ������ò�ѯ�еij������²�ִ�в�ѯ�Ŀ��ܽ���� ��Ϊ��Щ������׼�����ִ������IJ�ѯ�Ĺ滮��ʱ�򻹲��ɵã� ���ԣ�ѡ�����ù滮�����Ǵκõġ� Ҫ��� PostgreSQL Ϊ��׼���õIJ�ѯѡȡ�IJ�ѯ�ƻ��� ʹ�� EXPLAIN��

�йز�ѯ�滮�� PostgreSQL Ϊ��ѯ�Ż���Ŀ���ռ���ͳ�Ƶĸ�����Ϣ�� ���� ANALYZE �ĵ���

����

Ϊһ�� INSERT ��䴴��һ��׼���ò�ѯȻ��ִ������

PREPARE fooplan (int, text, bool, numeric) AS
    INSERT INTO foo VALUES($1, $2, $3, $4);
EXECUTE fooplan(1, 'Hunter Valley', 't', 200.00);

Ϊһ�� SELECT ��䴴��һ��ִ�кõIJ�ѯȻ��ִ������

PREPARE usrrptplan (int, date) AS
    SELECT * FROM users u, logs l WHERE u.usrid=$1 AND u.usrid=l.usrid
    AND l.date = $2;
EXECUTE usrrptplan(1, current_date);

������

SQL ��׼����һ�� PREPARE ��䣬 ������ֻ����Ƕ��� SQL �ͻ��ˡ�PostgreSQL ʵ�ֵ� PREPARE �����﷨Ҳ���в�ͬ��

�ּ�

DEALLOCATE, EXECUTE