PostgreSQLLa base de données la plus sophistiquée au monde.

dblink_build_sql_insert

dblink_build_sql_insert — construit une instruction d'insertion en utilisant un tuple local, remplaçant les valeurs des champs de la clé primaire avec les valeurs fournies

Synopsis

    dblink_build_sql_insert(text relname,
                            int2vector primary_key_attnums,
                            int2 num_primary_key_atts,
                            text[] src_pk_att_vals_array,
                            text[] tgt_pk_att_vals_array) returns text
   

Description

dblink_build_sql_insert peut être utile pour réaliser une réplication sélective d'une table locale vers une base distante. Elle sélectionne une ligne de la table locale sur la base de la clé primaire et construit une commande SQL INSERT qui duplique cette ligne, mais avec pour valeurs de clé primaire celles du dernier argument. (Pour réaliser une copie exacte de la ligne, il suffit d'indiquer les mêmes valeurs pour les deux derniers arguments.)

Arguments

relname

Le nom d'une relation locale, par exemple foo ou monschema.matable. Ajouter des guillemets doubles si le nom est en casse mixte ou contient des caractères spéciaux, par exemple "FooBar" ; sans guillemets, la chaîne est forcée en minuscule.

primary_key_attnums

Les numéros des attributs (commençant à 1) des champs de la clé primaire, par exemple 1 2.

num_primary_key_atts

Le nombre de champs de la clé primaire.

src_pk_att_vals_array

Les valeurs des champs de la clé primaire à utiliser pour identifier le tuple local. Chaque champ est représenté dans sa forme textuelle. Une erreur est renvoyée s'il n'y a pas de lignes locales avec ces valeurs de clé primaire.

tgt_pk_att_vals_array

Les valeurs des champs de la clé primaire à placer dans la commande INSERT résultante. Chaque champ est représenté dans sa forme textuelle.

Valeur de retour

Renvoie l'instruction SQL demandée en tant que texte.

Exemple

 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)