例如,在MS-SQL中,您可以打开一个查询窗口并运行以下命令:
DECLARE @List AS VARCHAR(8)
SELECT @List = 'foobar'
SELECT *
FROM dbo.PubLists
WHERE Name = @List
在PostgreSQL中如何做到这一点?这是可以做到的吗?
发布于 2011-08-09 08:09:00
完整答案位于official PostgreSQL documentation中。
您可以使用新的PG9.0匿名代码块功能(http://www.postgresql.org/docs/9.1/static/sql-do.html )
DO $$
DECLARE v_List TEXT;
BEGIN
v_List := 'foobar' ;
SELECT *
FROM dbo.PubLists
WHERE Name = v_List;
-- ...
END $$;
您还可以获得最后一个insert id:
DO $$
DECLARE lastid bigint;
BEGIN
INSERT INTO test (name) VALUES ('Test Name')
RETURNING id INTO lastid;
SELECT * FROM test WHERE id = lastid;
END $$;
发布于 2016-03-31 14:04:02
DO $$
DECLARE
a integer := 10;
b integer := 20;
c integer;
BEGIN
c := a + b;
RAISE NOTICE'Value of c: %', c;
END $$;
发布于 2013-04-29 02:35:48
您可以使用:
\set list '''foobar'''
SELECT * FROM dbo.PubLists WHERE name = :list;
那个可以
https://stackoverflow.com/questions/766657
复制相似问题