Использование переменных в SQL - PullRequest
1 голос
/ 06 ноября 2011

PostgreSQL новичок здесь.Извините, это, вероятно, тривиально.

По сути, мне нужно получить произвольное значение из локальной таблицы, а затем использовать его в предложении WHERE для SELECT, который я запускаю для удаленной таблицы, чтобы вернуть строки, которые я вставлю обратно в локальную таблицу.table:

"Дайте мне все строки в удаленной таблице, где значение метки времени в f1 новее, чем максимальное значение метки времени для f1 в моей локальной версии той же таблицы"

Примерно так, sorta:

DECLARE @variable timestamp;
@variable = SELECT MAX(f1) from Foo;

INSERT INTO Foo SELECT * FROM (dblink('conn', 'select * from RemoteFoo WHERE f1 > @variable') as
t
( f1 int, f2 timestamp)

Как мне подойти к этому в postgreSQL?

1 Ответ

0 голосов
/ 06 ноября 2011

Поскольку вы все равно должны выходить через dblink, я бы, вероятно, обернул его в функцию.

CREATE FUNCTION get_remote_foos() RETURNS int ...

С помощью plpgsql вы можете более или менее написать код в своем примере.Подпись выше предполагает, что вы хотите вернуть количество вставленных строк.Полная информация о plgsql в руководствах - обратите внимание на функции quote_ident и quote_literal в этом разделе.Не имеет значения для отметки времени, но будет полезно в других случаях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...