dblink_build_sql_insert

PostgreSQL 9.4.4 中文手册
上一页 | 上一级 |  | 下一页

# 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