dblink_get_pkey
dblink_get_pkey â возвÑаÑÐ°ÐµÑ Ð¿Ð¾Ð·Ð¸Ñии и имена полей пеÑвиÑного клÑÑа оÑноÑениÑ
СинÑакÑиÑ
dblink_get_pkey(text relname) returns setof dblink_pkey_results
ÐпиÑание
ФÑнкÑÐ¸Ñ dblink_get_pkey вÑдаÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ пеÑвиÑном клÑÑе оÑноÑÐµÐ½Ð¸Ñ Ð² локалÑной базе даннÑÑ
. Ðногда ÑÑо полезно пÑи ÑоÑмиÑовании запÑоÑов, оÑпÑавлÑемÑÑ
в ÑдалÑннÑе Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
.
ÐÑгÑменÑÑ
relnameÐÐ¼Ñ Ð»Ð¾ÐºÐ°Ð»Ñного оÑноÑениÑ, напÑимеÑ
fooилиmyschema.mytab. ÐаклÑÑиÑе его в двойнÑе кавÑÑки, еÑли ÑÑо Ð¸Ð¼Ñ Ð² ÑмеÑанном ÑегиÑÑÑе или ÑодеÑÐ¶Ð¸Ñ ÑпеÑиалÑнÑе ÑимволÑ, напÑимеÑ"FooBar"; без кавÑÑек ÑÑа ÑÑÑока пÑиводиÑÑÑ Ðº Ð½Ð¸Ð¶Ð½ÐµÐ¼Ñ ÑегиÑÑÑÑ.
ÐозвÑаÑаемое знаÑение
ÐозвÑаÑÐ°ÐµÑ Ð¾Ð´Ð½Ñ ÑÑÑÐ¾ÐºÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ Ð¿ÐµÑвиÑного клÑÑа, либо не возвÑаÑÐ°ÐµÑ ÑÑÑок, еÑли в оÑноÑении Ð½ÐµÑ Ð¿ÐµÑвиÑного клÑÑа. Тип ÑезÑлÑÑиÑÑÑÑей ÑÑÑоки опÑеделÑн как
CREATE TYPE dblink_pkey_results AS (position int, colname text);
Ð ÑÑолбÑе position ÑодеÑжиÑÑÑ ÑиÑло Ð¾Ñ 1 до N; ÑÑо Ð½Ð¾Ð¼ÐµÑ Ð¿Ð¾Ð»Ñ Ð² пеÑвиÑном клÑÑе, а не Ð½Ð¾Ð¼ÐµÑ ÑÑолбÑа в ÑпиÑке ÑÑолбÑов ÑаблиÑÑ.
ÐÑимеÑÑ
CREATE TABLE foobar (
f1 int,
f2 int,
f3 int,
PRIMARY KEY (f1, f2, f3)
);
CREATE TABLE
SELECT * FROM dblink_get_pkey('foobar');
position | colname
----------+---------
1 | f1
2 | f2
3 | f3
(3 rows)