Re: List of FKeys ?

Поиск
Список
Период
Сортировка
От Ashish Karalkar
Тема Re: List of FKeys ?
Дата
Msg-id 007701c7e89c$15bf0190$170211ac@LIONKING.COM
обсуждение исходный текст
Ответ на List of FKeys ?  (Andreas <maps.on@gmx.net>)
Список pgsql-sql
----- Original Message ----- 
From: "Tom Lane" <tgl@sss.pgh.pa.us>
To: "Andreas" <maps.on@gmx.net>
Cc: <pgsql-sql@postgresql.org>
Sent: Monday, August 27, 2007 9:18 AM
Subject: Re: [SQL] List of FKeys ?


> Andreas <maps.on@gmx.net> writes:
>> could I get a list of foreign keys that refer to a column?
>
> The information_schema views constraint_column_usage and
> referential_constraints might help you, or you could dive into the
> underlying system catalogs.
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend

Hey Andreas is ur problem is not solved use following SP, I use it for the 
same reason.

just pass the primary key column name and primary key value it will return u 
list of child table's


sp_gen_foreign_keys_tables(OUT par_result text, OUT par_childtables text, IN 
par_colname character varying, IN par_colvalue integer) AS
$BODY$
DECLARE   err_data_entity varchar(100) default 'To find child records ';          err_operation varchar(100) default
'Select';         curforeign refcursor ;   curforeign1 refcursor;   tablename text;   columnname text;   var_str1 text;
 var_str2 text;   countno integer;   counter integer;BEGINpar_result :='Successfull';       var_str1:='select
distinct(fk_relation),fk_columnfrom 
 
core_foreign_keys_view where pk_relation in (select pk_relation from 
core_foreign_keys_view where pk_column='''|| par_colname||''')';       open curforeign for execute var_str1;
found:='true';par_childtables:='';whilefound ='t' loop          FETCH  curforeign  into tablename,columnname ;
var_str2:='selectcount(*) from '|| tablename || ' where ' || columnname 
 
||' = '|| par_colvalue;   IF VAR_STR2 IS NULL THEN    EXIT;   END IF;   open curforeign1 for execute var_str2;    FETCH
curforeign1 into countno;   close curforeign1;   if countno > 0 then    par_childtables:=par_childtables ||
tablename||'.'||columnname||',' ;   end if ;
 


      end loop;      close curforeign ;


END;$BODY$ LANGUAGE 'plpgsql' VOLATILE;



Hope this will help


With Regards
Ashish 



В списке pgsql-sql по дате отправления:

Предыдущее
От: Kristo Kaiv
Дата:
Сообщение: Re: [GENERAL] table column vs. out param [1:0]
Следующее
От: "ashok raj"
Дата:
Сообщение: SQL function