dblink_build_sql_delete#
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)