Postgres Professional
English
English
  • СУБД Postgres Pro
    • Postgres Pro Enterprise
    • Postgres Pro Certified (ФСТЭК)
    • Postgres Pro Standard
    • Для 1C:Предприятие
    • В облаке Azure
    • План разработок
    • Экосистема
  • Услуги
    • Миграция на PostgreSQL
    • Отказоустойчивые решения для PostgreSQL
    • Аудит СУБД
    • Техподдержка СУБД 24x7
    • Заказные разработки СУБД
  • Образование
    • Документация
    • Учебные курсы
    • Глоссарий
    • Демо-база
    • Книги
    • Списки рассылки
  • Блог
    • Новости
    • СМИ о нас
    • PostgreSQL
    • Компания
  • О компании
    • Наша команда
    • Карьера
    • Вакансии
    • Наши партнёры
    • Отзывы
    • Лицензии
  • Контакты
    • Для СМИ
  • Главная
  • Документация
  • Postgres Pro Standard 9.6
  • Страница в других версиях:
  • Postgres Pro Standard
  • 10
  • /
  • 9.6
  • /
  • 9.5
  •  ( текущая ) 
  •  | 
  • Postgres Pro Enterprise
  • 9.6
  •  | 
  • PostgreSQL
  • 10
  • /
  • 9.6
  • /
  • 9.5
  • /
  • 9.4


  • Русская версия
  • |
  • английская версия
  • |
  • сравнение
dblink_build_sql_insert
Пред. НаверхF.11. dblinkНачало След.

dblink_build_sql_insert

dblink_build_sql_insert — формирует оператор INSERT из локального кортежа, заменяя значения полей первичного ключа переданными альтернативными значениями

Синтаксис

dblink_build_sql_insert(text relname,
                        int2vector primary_key_attnums,
                        integer num_primary_key_atts,
                        text[] src_pk_att_vals_array,
                        text[] tgt_pk_att_vals_array) returns text

Описание

Функция dblink_build_sql_insert может быть полезна при избирательной репликации локальной таблицы с удалённой базой данных. Она выбирает строку из локальной таблицы по заданному первичному ключу, а затем формирует SQL-команду INSERT, дублирующую эту строку, но заменяет в ней значения первичного ключа данными из последнего аргумента. (Чтобы получить точную копию строки, просто укажите одинаковые значения в двух последних аргументах.)

Аргументы

relname

Имя локального отношения, например foo или myschema.mytab. Заключите его в двойные кавычки, если это имя в смешанном регистре или содержит специальные символы, например "FooBar"; без кавычек эта строка приводится к нижнему регистру.

primary_key_attnums

Номера атрибутов (начиная с 1) полей первичного ключа, например 1 2.

num_primary_key_atts

Число полей первичного ключа.

src_pk_att_vals_array

Значения полей первичного ключа, по которым будет выполняться поиск локального кортежа. Каждое поле здесь представляется в текстовом виде. Если локальной строки с этими значениями первичного ключа нет, выдаётся ошибка.

tgt_pk_att_vals_array

Значения полей первичного ключа, которые будут помещены в результирующую команду INSERT. Каждое поле представляется в текстовом виде.

Возвращаемое значение

Возвращает запрошенный SQL-оператор в текстовом виде.

Замечания

Начиная с PostgreSQL 9.0, номера атрибутов в primary_key_attnums воспринимаются как логические номера столбцов, соответствующие позициям столбцов в SELECT * FROM relname. Предыдущие версии воспринимали эти номера как физические позиции столбцов. Отличие этих подходов проявляется, когда на протяжении жизни таблицы из неё удаляются столбцы левее указанных.

Примеры

SELECT dblink_build_sql_insert('foo', '1 2', 2, '{"1", "a"}', '{"1", "b''a"}');
             dblink_build_sql_insert
--------------------------------------------------
 INSERT INTO foo(f1,f2,f3) VALUES('1','b''a','1')
(1 row)

Пред. Начало След.
dblink_get_pkey Наверх dblink_build_sql_delete
  • Postgres Pro
  • Документация
  • Списки рассылки

© Postgres Professional, 2015-2018

[email protected]

Ваше сообщение принято под номером .