Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
n Оператор присваивания :=. Такой же, как в языке Pascal. Сопоставляет переменную с некоторым значением или результатом выражения.
n Оператор ветвления IF-ELSE-END IF. Знакомая всем с детства конструкция, позволяющая выполнить проверку некоторого условия и в зависимости от результата проверки перейти на выполнение того или иного блока команд. Синтаксис:
If <условие> then
<операторы;…>
[else
<операторы;…>]
end if;
n Оператор цикла FOR. Наиболее распространенный цикл. Переменная цикла <var> – то самое исключение, когда переменная может не описываться в секции DECLARE. В этом случае зона ее видимости ограничивается циклом. Синтаксис:
For <var> in <start>..<stop> loop
<тело цикла>
End loop;
Существует вариант этого цикла и для «прохода» по результату выборки:
For <row-var> in <select> loop
<тело цикла>
End loop;
В этом случае в переменную <row-var> последовательно подставляются строки из выборки, и тип этой переменной должен быть либо <table>%rowtype, отражающий запись конкретной таблицы <table>, либо RECORD, описывающий обобщенную запись таблицы.
С остальными операторами, а также со встроенными функциями можно познакомиться в документации к языку PL/pgSQL.
В качестве примера создадим обычную (не триггерную) функцию, которая занесет в таблицу test1 (позже мы ее удалим) N случайных чисел. Сейчас польза от этого исключительно в виде примера, а в принципе таким образом можно, например, заполнять базу для выполнения тестов.
CREATE OR REPLACE FUNCTION inserter(int4)
RETURNS int4 AS
'DECLARE
N alias for $1;
Rand numeric default 0.5;
tmp varchar;
BEGIN
select tablename into tmp
from pg_tables