Postgresql 博士后的新手。你能帮我做几个简单的陈述吗?

Postgresql 博士后的新手。你能帮我做几个简单的陈述吗?,postgresql,syntax,Postgresql,Syntax,我非常熟悉MSSQL,但我今天需要处理一些博士后的东西。最终的目标是返回表的新id以供其他地方使用,但由于我不熟悉postgress的语法,我似乎遇到了一些问题 问题1: 在MSSQL中,我会: delcare @test_number int select @test_number = 42 print @test_number declare @new_id int insert into some_table (data1. data2) select @new_id = @@ident

我非常熟悉MSSQL,但我今天需要处理一些博士后的东西。最终的目标是返回表的新id以供其他地方使用,但由于我不熟悉postgress的语法,我似乎遇到了一些问题

问题1:

在MSSQL中,我会:

delcare @test_number int
select @test_number = 42
print @test_number
declare @new_id int
insert into some_table (data1. data2)
select @new_id = @@identity
-- now use @new_id for w/e you want
在博士后,我尝试:

test_number integer;
test_number := 42
print test_number
new__id integer;
new_id := insert into some_table (data1, data2) returning id;
-- now use new_id for w/e you want
但它不喜欢第一行:

ERROR:  syntax error at or near "test_number"
LINE 1: test_number integer;
如果我能弄明白这一点,我想我已经解决了我的真正的问题,这将是:

问题2:

在MSSQL中,我会:

delcare @test_number int
select @test_number = 42
print @test_number
declare @new_id int
insert into some_table (data1. data2)
select @new_id = @@identity
-- now use @new_id for w/e you want
在博士后,我尝试:

test_number integer;
test_number := 42
print test_number
new__id integer;
new_id := insert into some_table (data1, data2) returning id;
-- now use new_id for w/e you want

在谷歌上快速搜索可以得到以下答案


看起来您基本上在查询中声明了一个匿名内联pgsql函数。这对Postgres 9来说也是个新鲜事物。

在谷歌上快速搜索,可以得到以下答案


看起来您基本上在查询中声明了一个匿名内联pgsql函数。对于Postgres 9来说,它也是新的。

您使用了什么搜索条件?此外,我在谷歌上搜索了postgres变量,发现postgres文档与该链接中使用的语法完全不同(不过这确实有效,谢谢!)我在谷歌上的搜索词是
postgres declare variable query
。很高兴它起作用了。你用什么作为搜索条件?此外,我在谷歌上搜索了postgres变量,发现postgres文档与该链接中使用的语法完全不同(不过这确实有效,谢谢!)我在谷歌上的搜索词是
postgres declare variable query
。很高兴它起作用了。