mirror of
https://github.com/postgres/postgres.git
synced 2025-06-04 00:02:37 -04:00
Improve example for DO, per Petr Jelinek.
This commit is contained in:
parent
c2bb0378cf
commit
e33eeb249e
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/do.sgml,v 1.1 2009/09/22 23:43:37 tgl Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/do.sgml,v 1.2 2009/09/23 15:41:51 tgl Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -42,6 +42,11 @@ DO <replaceable class="PARAMETER">code</replaceable> [ LANGUAGE <replaceable cla
|
|||||||
with no parameters, returning <type>void</>. It is parsed and
|
with no parameters, returning <type>void</>. It is parsed and
|
||||||
executed a single time.
|
executed a single time.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The optional <literal>LANGUAGE</> clause can be written either
|
||||||
|
before or after the code block.
|
||||||
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
@ -91,17 +96,20 @@ DO <replaceable class="PARAMETER">code</replaceable> [ LANGUAGE <replaceable cla
|
|||||||
<refsect1 id="sql-do-examples">
|
<refsect1 id="sql-do-examples">
|
||||||
<title id="sql-do-examples-title">Examples</title>
|
<title id="sql-do-examples-title">Examples</title>
|
||||||
<para>
|
<para>
|
||||||
Execute a simple PL/pgsql loop without needing to create a function:
|
Grant all privileges on all views in schema <literal>public</> to
|
||||||
|
role <literal>webuser</>:
|
||||||
<programlisting>
|
<programlisting>
|
||||||
DO $$
|
DO $$DECLARE r record;
|
||||||
DECLARE r record;
|
|
||||||
BEGIN
|
BEGIN
|
||||||
FOR r IN SELECT rtrim(roomno) AS roomno, comment FROM Room ORDER BY roomno
|
FOR r IN SELECT table_schema, table_name FROM information_schema.tables
|
||||||
|
WHERE table_type = 'VIEW' AND table_schema = 'public'
|
||||||
LOOP
|
LOOP
|
||||||
RAISE NOTICE '%, %', r.roomno, r.comment;
|
EXECUTE 'GRANT ALL ON ' || quote_ident(r.table_schema) || '.' || quote_ident(r.table_name) || ' TO webuser';
|
||||||
END LOOP;
|
END LOOP;
|
||||||
END$$;
|
END$$;
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
This example assumes that <varname>default_do_language</> has its
|
||||||
|
default value, namely <literal>plpgsql</>.
|
||||||
</para>
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
<refsect1>
|
<refsect1>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user