2010-08-23 86 views
0

在回答上一个问题(request over several schema)之后,我尝试编写一个存储过程来为多个模式选择表(每个用户都有一个模式)。postgresql在多个模式上查询的存储过程

create or replace public.select_simulations() returns setof simulation as $$ 
declare 
    users pg_user%ROWTYPE; 
    simu simulation%ROWTYPE; 
begin 
    for users in select usename from pg_user where usename <> 'postgres' loop 
     for simu in select id, name from (users.usename).simulation loop    
      return next simu; 
     end loop; 
    end loop; 
end; 
$$ 

,但不接受(users.usename).simulation,没有它产生的错误括号(好像搜索子领域,而不是一个模式)...

那么,什么是正确的语法告诉users.usename是一个模式名称?

谢谢你的帮助!

+0

我使用PostgreSQL 8.1,也许它事.. – 2010-08-23 10:03:50

+0

版本8.1将在今年停止服务,您最好升级到更新的版本。自2005年11月以来,PostgreSQL也变得更好了,只是时间不足以为这个陈旧过时的版本做些什么。 http://wiki.postgresql.org/wiki/PostgreSQL_Release_Support_Policy – 2010-08-23 10:18:25

+0

谢谢你的建议,我升级到8.4。 – 2010-08-23 13:28:05

回答