dblink_build_sql_delete
dblink_build_sql_delete — формирует оператор DELETE со значениями, передаваемыми для полей первичного ключа
Синтаксис
dblink_build_sql_delete(text relname,
int2vector primary_key_attnums,
integer num_primary_key_atts,
text[] tgt_pk_att_vals_array) returns textОписание
Функция dblink_build_sql_delete может быть полезна при избирательной репликации локальной таблицы с удалённой базой данных. Она формирует SQL-команду DELETE, которая удалит строку с заданными значениями первичного ключа.
Аргументы
relnameИмя локального отношения, например
fooилиmyschema.mytab. Заключите его в двойные кавычки, если это имя в смешанном регистре или содержит специальные символы, например"FooBar"; без кавычек эта строка приводится к нижнему регистру.primary_key_attnumsНомера атрибутов (начиная с 1) полей первичного ключа, например
1 2.num_primary_key_attsЧисло полей первичного ключа.
tgt_pk_att_vals_arrayЗначения полей первичного ключа, которые будут использоваться в результирующей команде
DELETE. Каждое поле представляется в текстовом виде.
Возвращаемое значение
Возвращает запрошенный SQL-оператор в текстовом виде.
Замечания
Начиная с PostgreSQL 9.0, номера атрибутов в primary_key_attnums воспринимаются как логические номера столбцов, соответствующие позициям столбцов в SELECT * FROM relname. Предыдущие версии воспринимали эти номера как физические позиции столбцов. Отличие этих подходов проявляется, когда на протяжении жизни таблицы из неё удаляются столбцы левее указанных.
Примеры
SELECT dblink_build_sql_delete('"MyFoo"', '1 2', 2, '{"1", "b"}');
dblink_build_sql_delete
---------------------------------------------
DELETE FROM "MyFoo" WHERE f1='1' AND f2='b'
(1 row)