PostgreSQL 8.0.0 �����ĵ���PostgreSQL �й� ������ | ||||
---|---|---|---|---|
Prev | Fast Backward | Fast Forward | Next |
PL/pgSQL�� PostgreSQL ���ݿ�ϵͳ��һ����װ�صĹ������ԡ� PL/pgSQL�����Ŀ���Ǵ���һ�ֿ�װ�صĹ������ԣ�����
�����ڴ��������ʹ��������̣�
Ϊ SQL �������ӿ��ƽṹ��
����ִ�и��ӵļ��㣬
�̳������û��������ͣ������Ͳ�������
���Զ���Ϊ�����������Σ������ԣ���
����ʹ�á�
���������û��������͵�����/���ת���ͼ��㺯�����⣬ �κο����� C ���Ժ����ﶨ��Ķ����������� PL/pgSQL��ʹ�á� ���磬���ǿ��Դ������ӵ��������㺯���� �����֮���ڶ���������������ں��������С�
PL/pgSQL ������һ��(���κ�һ�������������ڲ�)������ʱ�� PL/pgSQL �ĵ��þ����������Դ�ı����ɶ�����ָ������ ��ָ������ȫת���� PL/pgSQL ���ṹ�� �����ں�����ʹ�õ��Ķ����� SQL ���ʽ�� SQL ���δ����ת����
��ÿ���������õ��ı��ʽ�� SQL �����ں������״�ʹ�õ�ʱ�� PL/pgSQL ����������һ�����õ�ִ�й滮��ʹ�� SPI �������� SPI_prepare �� SPI_saveplan �������� ���Ըñ��ʽ��������ķ��ʶ���ʹ�������õĹ滮�� ��ˣ�һ���������������������䣬������Ҫִ�й滮�ĺ����� ֻ��Ҫ���ͱ�����Щ���������ݿ������ڼ�����ʹ�õ��Ĺ滮�� ����������Ч�ؼ���Ϊ PL/pgSQL �������������ɷ�����ִ�й滮����ʱ�䡣 �����и�ȱ�������ض����ʽ���������еĴ������Ҫ�������е��Dz���ִ�е���ʱ����ܷ��֡�
һ�� PL/pgSQL �ں�����Ϊһ�������ƶ���ִ�мƻ��� ��ô�����ڸô����ݿ����ӵ��������ڸ��øù滮�� ��ô����������ͨ�������һЩ����������㶯̬����������ݿ�ģʽ����ô�Ϳ��������⡣ ���磺
CREATE FUNCTION populate() RETURNS integer AS $$ DECLARE -- ������ BEGIN PERFORM my_function(); END; $$ LANGUAGE plpgsql;
�����ִ������ĺ�������ô������ΪPERFORM������ɵ�ִ�мƻ��������� my_function() �� OID�� Ȼ�������ɾ��Ȼ�����´��� my_function()�� ��ô populate() �ͻ���Ҳ�Ҳ��� my_function()�� ��ʱ����ֻ�����´��� populate()�� �������������¿�ʼһ���µ����ݿ�Ự�����øú��������±���һ�Ρ� ����һ��������������ķ������ڸ���my_function �Ķ����ʱ�� ʹ�� CREATE OR REPLACE FUNCTION �����һ��������"�滻"����ô���� OID ������仯����
��ΪPl/pgSQL�����ַ�������ִ�й滮�� ������Щ��PL/pgSQL��ֱ�ӳ��ֵ� SQL ���������ÿ��ִ�е�ʱ��������ͬ�ı���ֶΣ� Ҳ����˵���㲻����һ���������� SQL �����еı�����ֶε����ơ� Ҫ�ƿ�������ƣ�������� PL/pgSQL �� EXECUTE��䶯̬�ع������� — ������ÿ��ִ�е�ʱ����һ���µ�����ƻ���
ע��: PL/pgSQL ��EXECUTE���� PostgreSQL ������֧�ֵ� EXECUTE ���û�й�ϵ�� ��������EXECUTE��䲻���� PL/pgSQL ������ʹ�ã�����Ҳû��Ҫ����
SQL ��PostgreSQL �ʹ����������ϵ�����ݿ������������Ե����ԡ� ���ǿ�����ֲ�ģ���������ѧϰʹ�á� �������� SQL ��䶼���������ݿ������������ִ�С�
�����ζ����Ŀͻ���Ӧ�ñ����ÿ������͵����ݿ�������� �ȴ����������������ս������һЩ���㣬Ȼ�����������������һ����� ������Щ��������������̼�ͨѶ�����������Ŀͻ���������һ̨�������������ᵼ�����翪����
���ʹ����PL/pgSQL����ô�����һ�������һϵ�����������ݿ�������������һ���飬 ������ӵ���˹������Ե��������Ҽ� SQL ��ʹ�ã������Լ�˴�����ʱ�䣬��Ϊ���ò��Ÿ����ͻ���/������ͨѶ�Ĺ��ȡ� �������ܲ������Ե�����������
ͬ������ PL/pgSQL ������ʹ�� SQL �������������ͣ��������ͺ�����
�������ǿ��Է��������κ��������͵���ֵ�����ǻ����Խ��ܻ��߷������������������ĸ������ͣ������ͣ��� ���ǻ���������һ�� PL/pgSQL ����Ϊ���� record �ĺ����� ��˼�ǽ����һ�������ͣ�����е��ֶ����ڵ������IJ�ѯ��ָ���ģ����������� Section 7.2.1.4 �����۵�������
PL/pgSQL ��������������Ϊ���ܲ����ض�̬������ anyelement �� anyarray�� һ����̬�ĺ���ʵ�ʲ������������Ϳ����ڲ�ͬ�ĵ��û����б仯�� �������� Section 31.2.5 �����۵������� һ�������� Section 35.4.1��
PL/pgSQL ����������Ϊ����һ�����ǿ��Է��ص��κε���ʵ����"����set��"�����߱� �����ĺ���ͨ��Ϊ�����ÿ����Ҫ���ص�Ԫ��ִ��һ�� RETURN NEXT �������������
���PL/pgSQL ������������Ϊ���� void�������ûɶ���õĶ������Է��صĻ���
PL/pgSQL Ŀǰ��������ȫ֧�������ͣ������������ͺ��²�ı���������һ���ġ� �����ζ�����������Լ�������ᱻǿ�ơ����ں����������ⲻ��ʲô���⣬ ���������� PL/pgSQL ��������Ϊ����һ�������ͣ���ô����Σ�ա�