Перейти к содержанию

CREATE PROCEDURE

DDL-команда CREATE PROCEDURE используется для создания новой процедуры.

Примечание

Пользователь может создавать и затем управлять своими процедурами при наличии соответствующей привилегии.

Созданная процедура хранится в системной таблице _pico_routine.

Синтаксис

CREATE PROCEDURE IF NOT EXISTS procedure ( type , ) LANGUAGE SQL AS $$ insert update delete $$ BEGIN ATOMIC insert update delete END WAIT APPLIED GLOBALLY LOCALLY OPTION ( TIMEOUT = double )

Тип

Диаграмма

BOOL BOOLEAN DATETIME DECIMAL DOUBLE INT INTEGER NUMBER SCALAR STRING TEXT UNSIGNED UUID VARCHAR ( length )

Параметры

  • PROCEDURE — имя процедуры. Соответствует правилам имен для всех объектов в кластере
  • IF NOT EXISTS — позволяет избежать ошибки в случае, если такая процедура в кластере уже есть
  • WAIT APPLIED — при использовании этого параметра контроль пользователю будет возвращен только после того как данная операция будет применена либо во всем кластере (GLOBALLY), либо в рамках текущего инстанса (LOCALLY)

Ограничения

На текущий момент тело процедуры может содержать единственную DML-команду.

Примеры

Тестовые таблицы

Примеры использования команд включают в себя запросы к тестовым таблицам.

Процедура для добавления новых строк в таблицу warehouse:

CREATE PROCEDURE proc (int, text, text)
AS $$INSERT INTO warehouse VALUES($1, $2, $3)$$
OPTION (TIMEOUT = 5.0);

где:

  • proc — название процедуры
  • int, text, text — типы аргументов процедуры
  • $1, $2, $3 — позиции значений из аргументов процедуры