Вопросы с тегом «plpgsql»

PL / pgSQL является процедурным языком по умолчанию для системы баз данных PostgreSQL. Вопросы о PL / pgSQL, вероятно, также должны быть помечены как «PostgreSQL».

2
Создать индекс, если он не существует
Я работаю над функцией, которая позволяет мне добавить индекс, если он не существует. Я столкнулся с проблемой, что я не могу получить список индексов для сравнения. есть идеи? Эта проблема аналогична проблеме создания столбца, которая решается с помощью следующего кода: https://stackoverflow.com/a/12603892/368511

4
Производительность функции
Исходя из опыта MySQL, где производительность хранимых процедур (старая статья) и удобство использования сомнительны, я оцениваю PostgreSQL для нового продукта для моей компании. Одна из вещей, которые я хотел бы сделать, - это перенести некоторую логику приложения в хранимые процедуры, поэтому я здесь прошу сделать DO и DON'Ts (лучшие практики) …

3
Идиоматичный способ реализации UPSERT в PostgreSQL
Я читал о различных UPSERTреализациях в PostgreSQL, но все эти решения относительно старые или относительно экзотические (например, с использованием записываемого CTE ). И я просто не являюсь экспертом в psql, чтобы сразу выяснить, устарели ли эти решения, потому что они хорошо рекомендованы, или они (ну, почти все они) являются просто …

5
Как вставить (файл) данные в Bytea столбец PostgreSQL?
Этот вопрос не о байтее v. Oid v. Blobs v. Крупных объектах и ​​т. Д. У меня есть таблица, содержащая integerполе первичного ключа и byteaполе. Я хотел бы ввести данные в byteaполе. Предположительно, это может быть сделано одним из PL/языков, и я могу рассмотреть возможность сделать это PL/Pythonв будущем. Поскольку …

6
Каковы различия между «хранимыми процедурами» и «хранимыми функциями»?
Поэтому в комментарии к этому вопросу упоминается, что существует небольшая разница в «хранимых процедурах» и «хранимых функциях» в PostgreSQL. Комментарий ссылается на статью в Википедии, но некоторые из них, кажется, не применяются (например, они могут быть использованы в SELECTутверждении). Сам синтаксис кажется немного запутанным: CREATE FUNCTION emp_stamp() RETURNS trigger AS …

1
SQL-инъекция в функции Postgres против подготовленных запросов
В Postgres подготовленные запросы и пользовательские функции эквивалентны как механизм защиты от внедрения SQL ? Есть ли конкретные преимущества в одном подходе по сравнению с другим?

1
Функция Postgres назначает результаты запроса нескольким переменным
Мне нужно присвоить значения переменной 2, как показано ниже в функции Postgres. a := select col1 from tbl where ... b := select col2 from tbl where ... Как я могу назначить 2 значения для 2 переменных в одной строке команды? подобно a,b := select col1,col2 from tbl where ...

1
Есть ли хороший способ запустить триггер для каждой записи в таблице postgres?
У меня есть система, в которой я не могу управлять дизайном некоторых таблиц (реплицируется через Slony-I), и поэтому у меня есть ряд того, что мы называем «теневыми таблицами», где я извлекаю некоторую информацию из реплицируемых таблиц и сохраните его в обработанной форме, в которой я нуждаюсь, при этом удаляя записи, …

2
Процедурные языки PostgreSQL - различия между PL / pgSQL и SQL
Кто-нибудь может, пожалуйста, суммировать различия между: http://www.postgresql.org/docs/9.1/static/xfunc-sql.html и http://www.postgresql.org/docs/9.1/static/plpgsql.html ? Основные положения: концептуальные различия учитывая проблемную семью, удобство использования политические вопросы

2
План запросов Postgres для вызова функции, написанный на plpgsql
Это возможно при использовании pgadminили plsqlухватить план запроса для SQL выполненного оператора Внутри у сер д efined е соборования (UDF) , используя EXPLAIN. Итак, как мне получить план запроса для конкретного вызова UDF? Я вижу, что UDF абстрагируется в одну операцию F()в pgadmin. Я просмотрел документацию, но ничего не смог …

1
EXPLAIN ANALYZE не показывает детали для запросов внутри функции plpgsql
Я использую функцию PL / pgSQL в PostgreSQL 9.3 с несколькими сложными запросами внутри: create function f1() returns integer as $$ declare event tablename%ROWTYPE; .... .... begin FOR event IN SELECT * FROM tablename WHERE condition LOOP EXECUTE 'SELECT f2(event.columnname)' INTO dummy_return; END LOOP; ... INSERT INTO ... FROM a …

2
Триггер: переместить удаленные строки в таблицу архива
У меня есть маленькая (~ 10 строк) таблица, вызываемая restrictionsв моей базе данных PostgreSQL, где значения удаляются и вставляются ежедневно. Я хотел бы иметь таблицу с именем restrictions_deleted, где каждая строка, которая удаляется изrestrictions будет сохранена автоматически. Так как restrictionsимеет серийный идентификатор, дубликатов не будет. Как мне написать такой триггер …

1
Конфликт имен между параметром функции и результатом JOIN с предложением USING
Учитывая эту настройку в текущем Postgres 9.4 ( из этого связанного вопроса ): CREATE TABLE foo (ts, foo) AS VALUES (1, 'A') -- int, text , (7, 'B'); CREATE TABLE bar (ts, bar) AS VALUES (3, 'C') , (5, 'D') , (9, 'E'); Существует также SQL Fiddle из предыдущего вопроса. …

2
Есть ли простой способ в PL / pgSQL, чтобы проверить, если запрос не дал результата?
В настоящее время я немного экспериментирую с PL / pgSQL и хочу узнать, есть ли более элегантный способ сделать что-то вроде этого: select c.data into data from doc c where c.doc_id = id and c.group_cur > group_cur order by c.id desc limit 1; EXCEPTION WHEN NO_DATA_FOUND THEN select c.data into …

3
Как я могу вернуть несколько строк записей в PL / pgSQL
Я пытаюсь вернуть несколько записей, используя тип данных RECORD, есть ли способ, которым я могу добавить к RECORD и добавить / добавить новое значение с каждой итерации к этой записи. то есть, я хочу добавить к нему, recчтобы он recстал набором строк после завершения цикла, который я могу просто ВЕРНУТЬ …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.