'\" t .\" Title: dblink_build_sql_insert .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets v1.75.2 .\" Date: 2016 .\" Manual: PostgreSQL 9.5.2 Documentation .\" Source: PostgreSQL 9.5.2 .\" Language: English .\" .TH "DBLINK_BUILD_SQL_INSERT" "3" "2016" "PostgreSQL 9.5.2" "PostgreSQL 9.5.2 Documentation" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" dblink_build_sql_insert \- builds an INSERT statement using a local tuple, replacing the primary key field values with alternative supplied values .SH "SYNOPSIS" .sp .nf 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 .fi .SH "DESCRIPTION" .PP \fBdblink_build_sql_insert\fR can be useful in doing selective replication of a local table to a remote database\&. It selects a row from the local table based on primary key, and then builds a SQL \fBINSERT\fR command that will duplicate that row, but with the primary key values replaced by the values in the last argument\&. (To make an exact copy of the row, just specify the same values for the last two arguments\&.) .SH "ARGUMENTS" .PP \fIrelname\fR .RS 4 Name of a local relation, for example foo or myschema\&.mytab\&. Include double quotes if the name is mixed\-case or contains special characters, for example "FooBar"; without quotes, the string will be folded to lower case\&. .RE .PP \fIprimary_key_attnums\fR .RS 4 Attribute numbers (1\-based) of the primary key fields, for example 1 2\&. .RE .PP \fInum_primary_key_atts\fR .RS 4 The number of primary key fields\&. .RE .PP \fIsrc_pk_att_vals_array\fR .RS 4 Values of the primary key fields to be used to look up the local tuple\&. Each field is represented in text form\&. An error is thrown if there is no local row with these primary key values\&. .RE .PP \fItgt_pk_att_vals_array\fR .RS 4 Values of the primary key fields to be placed in the resulting \fBINSERT\fR command\&. Each field is represented in text form\&. .RE .SH "RETURN VALUE" .PP Returns the requested SQL statement as text\&. .SH "NOTES" .PP As of PostgreSQL 9\&.0, the attribute numbers in \fIprimary_key_attnums\fR are interpreted as logical column numbers, corresponding to the column\(aqs position in SELECT * FROM relname\&. Previous versions interpreted the numbers as physical column positions\&. There is a difference if any column(s) to the left of the indicated column have been dropped during the lifetime of the table\&. .SH "EXAMPLES" .sp .if n \{\ .RS 4 .\} .nf SELECT dblink_build_sql_insert(\(aqfoo\(aq, \(aq1 2\(aq, 2, \(aq{"1", "a"}\(aq, \(aq{"1", "b\(aq\(aqa"}\(aq); dblink_build_sql_insert \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- INSERT INTO foo(f1,f2,f3) VALUES(\(aq1\(aq,\(aqb\(aq\(aqa\(aq,\(aq1\(aq) (1 row) .fi .if n \{\ .RE .\}