🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# dblink_build_sql_insert ## Name dblink_build_sql_insert --  使用本地元组建立INSERT语句,使用可选的已提供的值替换主键字段 ## Synopsis ``` 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) ```