Good point, I do however need this for simpliefied display purposes only,
the information in these tables I do otherwise not need for anything.
But I will keep this in mind next time I have a similar issue.

Thanks
Olaf



On 10/17/08 9:09 AM, "Martin Gainty" <[EMAIL PROTECTED]> wrote:

> Good Morning Olaf-
> 
> the only reason why I bring this up is a materialized view is based on
> contents of the originally queried tables
> If you create a temporary table instead of a materialized view
> you have no ability to synchronise the contents of the materialized view with
> the originally queried tables
> after session is complete the temporary table disappears
> 
> Martin Gainty 
> ______________________________________________
> Disclaimer and confidentiality note
> Everything in this e-mail and any attachments relates to the official business
> of Sender. This transmission is of a confidential nature and Sender does not
> endorse distribution to any party other than intended recipient. Sender does
> not necessarily endorse content contained within this transmission.
> 
> 
>> > Date: Thu, 16 Oct 2008 16:46:35 -0400
>> > Subject: Re: Stored proc - dynamic sql in cursor
>> > From: [EMAIL PROTECTED]
>> > To: [EMAIL PROTECTED]; mysql@lists.mysql.com
>> > 
>> > The only one that comes to mind is that I do not see the tmp table at any
>> > time, which is nice...
>> > The view would show up in a show tables
>> > 
>> > 
>> > On 10/16/08 4:45 PM, "Martin Gainty" <[EMAIL PROTECTED]> wrote:
>> > 
>>> > > 
>>> > > any reason for going with Temp Tables over materialized View which can
be
>>> > > periodically refreshed from DB contents?
>>> > > http://dev.mysql.com/doc/refman/6.0/en/create-view.html
>>> > > 
>>> > > thanks,
>>> > > Martin 
>>> > > ______________________________________________
>>> > > Disclaimer and confidentiality note
>>> > > Everything in this e-mail and any attachments relates to the official
>>> business
>>> > > of Sender. This transmission is of a confidential nature and Sender does
not
>>> > > endorse distribution to any party other than intended recipient. Sender
>>> does
>>> > > not necessarily endorse content contained within this transmission.
>>> > > 
>>> > > 
>>>>> > >> > Date: Thu, 16 Oct 2008 16:14:39 -0400
>>>>> > >> > Subject: Re: Stored proc - dynamic sql in cursor
>>>>> > >> > From: [EMAIL PROTECTED]
>>>>> > >> > To: [EMAIL PROTECTED]; mysql@lists.mysql.com
>>>>> > >> > 
>>>>> > >> > I found a post suggesting to use the cursor to select from a
>>>>> temporary
>>>> > >> table
>>>>> > >> > that is created dynamically each time
>>>>> > >> > This seems to work...
>>>>> > >> > 
>>>>> > >> > 
>>>>> > >> >       DECLARE adi CURSOR FOR select count(*) from t;
>>>>> > >> >       
>>>>> > >> >       SET @stmt_text=CONCAT("drop temporary table if exists t");
>>>>> > >> >       PREPARE stmt FROM @stmt_text;
>>>>> > >> >       EXECUTE stmt;
>>>>> > >> >       DEALLOCATE PREPARE stmt;
>>>>> > >> > 
>>>>> > >> > 
>>>>> > >> >       SET @stmt_text=CONCAT("create temporary table t as select
>>>>> i.ident
>>>> > >> from
>>>>> > >> > ",tablename," a join individual i on a.ident=i.ident where
>>>>> fid=",agpfid);
>>>>> > >> >       PREPARE stmt FROM @stmt_text;
>>>>> > >> >       EXECUTE stmt;
>>>>> > >> >       DEALLOCATE PREPARE stmt;
>>>>> > >> > 
>>>>> > >> > 
>>>>> > >> >       select * from t;
>>>>> > >> >       OPEN adi;
>>>>> > >> >        FETCH adi INTO resadi;
>>>>> > >> >       CLOSE adi;
>>>>> > >> > 
>>>>> > >> >       IF (resadi>0) THEN
>>>>> > >> >         select resadi as tablename;
>>>>> > >> >       END IF;
>>>>> > >> > 
>>>>> > >> > 
>>>>> > >> > On 10/16/08 4:07 PM, "Martin Gainty" <[EMAIL PROTECTED]> wrote:
>>>>> > >> > 
>>>>>>> > >>> > > Good Afternoon Olaf-
>>>>>>> > >>> > > 
>>>>>>> > >>> > > not seeing anything obvious which could be incorrect
>>>>>>> > >>> > > what happens when you execute the proc
>>>>>>> > >>> > > ?
>>>>>>> > >>> > > 
>>>>>>> > >>> > > Thanks
>>>>>>> > >>> > > Martin Gainty
>>>>>>> > >>> > > ______________________________________________
>>>>>>> > >>> > > Disclaimer and confidentiality note
>>>>>>> > >>> > > Everything in this e-mail and any attachments relates to the
official
>>>>> > >>> business
>>>>>>> > >>> > > of Sender. This transmission is of a confidential nature and
>>>>>>> Sender does
>> > not
>>>>>>> > >>> > > endorse distribution to any party other than intended
>>>>>>> recipient. Sender
>>>>> > >>> does
>>>>>>> > >>> > > not necessarily endorse content contained within this
>>>>>>> transmission.
>>>>>>> > >>> > > 
>>>>>>> > >>> > > 
>>>>>>>>>>> > >>>>> > >> > Date: Thu, 16 Oct 2008 15:31:23 -0400
>>>>>>>>>>> > >>>>> > >> > Subject: Stored proc - dynamic sql in cursor
>>>>>>>>>>> > >>>>> > >> > From: [EMAIL PROTECTED]
>>>>>>>>>>> > >>>>> > >> > To: mysql@lists.mysql.com
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> > Hi all,
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> > I am running into some issues with what I am trying
to do in a
>>>>>>> > >>>>> stored proc.
>>>>>>>>>>> > >>>>> > >> > Basically I am trying to find records related to
certain
>>>>>>> > >>>>> individuals in
>>>>>>>>>>> > >>>>> > >> > other tables in the databases and if there are any,
tell me how
>> > many.
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> > Instead of doing this for each of these tables
>>>>>>>>>>> individually I use a
>>>>>>> > >>>>> cursor:
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> > DECLARE tnames CURSOR FOR select table_name from
>>>>>>> > >>>>> information_schema.tables
>>>>>>>>>>> > >>>>> > >> > where table_schema='agpv2' and table_name like 'ad%'
and table_name
>> > not
>>>>>>>>> > >>>> > >> like
>>>>>>>>>>> > >>>>> > >> > '%headers' order by table_name desc;
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> > to get all the tables I need.
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> > Now I loop over the result set of this cursor and
want to
>>>>>>> > >>>>> dynamically
>>>>>>>>> > >>>> > >> insert
>>>>>>>>>>> > >>>>> > >> > the tablename into a second cursor. From what I read
(and tried)
>>>>>>> > >>>>> that does
>>>>>>>>>>> > >>>>> > >> > not work:
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> > OPEN tnames;
>>>>>>>>>>> > >>>>> > >> >    REPEAT
>>>>>>>>>>> > >>>>> > >> >    FETCH tnames INTO tablename;
>>>>>>>>>>> > >>>>> > >> >    IF NOT tnames_done THEN
>>>>>>>>>>> > >>>>> > >> >     SELECT tablename;
>>>>>>>>>>> > >>>>> > >> >     BEGIN
>>>>>>>>>>> > >>>>> > >> >       DECLARE resadi INT;
>>>>>>>>>>> > >>>>> > >> >       DECLARE adi_done INT DEFAULT 0;
>>>>>>>>>>> > >>>>> > >> >       DECLARE adi CURSOR FOR select count(*) from
>>>>>>>>>>> tablename a join
>>>>>>>>>>> > >>>>> > >> > individual i on a.ident=i.ident where fid=agpfid;
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> >       OPEN adi;
>>>>>>>>>>> > >>>>> > >> >        FETCH adi INTO resadi;
>>>>>>>>>>> > >>>>> > >> >       CLOSE adi;
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> >       IF (resadi>0) THEN
>>>>>>>>>>> > >>>>> > >> >         select resadi as adi_wps;
>>>>>>>>>>> > >>>>> > >> >       END IF;
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> > The cursor does not use tablename as a variable.
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> > What does work is using prepared statements:
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> >       SET @stmt_text=CONCAT("select count(*) from
>>>>>>>>>>> ",tablename," a
>> > join
>>>>>>>>>>> > >>>>> > >> > individual i on a.ident=i.ident where fid=",agpfid);
>>>>>>>>>>> > >>>>> > >> >       PREPARE stmt FROM @stmt_text;
>>>>>>>>>>> > >>>>> > >> >       EXECUTE stmt;
>>>>>>>>>>> > >>>>> > >> >       DEALLOCATE PREPARE stmt;
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> > The problem with this is that I only want the result
of the query
>> > if
>>>>>>>>>>> > >>>>> > >> > count(*) > 0  as there are many tables I am looking
in and most
>>>>>>> > >>>>> have no
>>>>>>>>>>> > >>>>> > >> > reference to individual so I do not want them in the
output and
>>>>>>> > >>>>> this just
>>>>>>>>>>> > >>>>> > >> > executes the statement.
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> > Is there any way I can dynamically manipulate the
string fro the
>>>>>>> > >>>>> cursor.
>>>>>>>>>>> > >>>>> > >> > Or, is there anyway I can catch the EXECUTE stmt
>>>>>>>>>>> output and look at
>> > it
>>>>>>>>>>> > >>>>> > >> > before outputting it?
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> > Thanks
>>>>>>>>>>> > >>>>> > >> > Olaf
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> > Here is the full proc as I would like it to work:
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> > DELIMITER //
>>>>>>>>>>> > >>>>> > >> > DROP PROCEDURE IF EXISTS show_pheno//
>>>>>>>>>>> > >>>>> > >> > CREATE PROCEDURE show_pheno(agpfid INT)
>>>>>>>>>>> > >>>>> > >> > READS SQL DATA
>>>>>>>>>>> > >>>>> > >> > SQL SECURITY INVOKER
>>>>>>>>>>> > >>>>> > >> > COMMENT 'shows phenotypes for given family id'
>>>>>>>>>>> > >>>>> > >> > BEGIN
>>>>>>>>>>> > >>>>> > >> >  BEGIN
>>>>>>>>>>> > >>>>> > >> >   DECLARE tablename TEXT;
>>>>>>>>>>> > >>>>> > >> >   DECLARE tnames_done INT DEFAULT 0;
>>>>>>>>>>> > >>>>> > >> >   DECLARE tnames CURSOR FOR select table_name from
>>>>>>>>> > >>>> > >> information_schema.tables
>>>>>>>>>>> > >>>>> > >> > where table_schema='agpv2' and table_name like 'ad%'
and table_name
>> > not
>>>>>>>>> > >>>> > >> like
>>>>>>>>>>> > >>>>> > >> > '%headers' order by table_name desc;
>>>>>>>>>>> > >>>>> > >> >   DECLARE CONTINUE HANDLER FOR NOT FOUND SET
tnames_done=1;
>>>>>>>>>>> > >>>>> > >> >   OPEN tnames;
>>>>>>>>>>> > >>>>> > >> >    REPEAT
>>>>>>>>>>> > >>>>> > >> >    FETCH tnames INTO tablename;
>>>>>>>>>>> > >>>>> > >> >    IF NOT tnames_done THEN
>>>>>>>>>>> > >>>>> > >> >     SELECT tablename;
>>>>>>>>>>> > >>>>> > >> >     BEGIN
>>>>>>>>>>> > >>>>> > >> >       DECLARE resadi INT;
>>>>>>>>>>> > >>>>> > >> >       DECLARE adi_done INT DEFAULT 0;
>>>>>>>>>>> > >>>>> > >> >       SET @tn = tablename;
>>>>>>>>>>> > >>>>> > >> >       DECLARE adi CURSOR FOR select count(*) from  a
join
>>>>>>> > >>>>> individual i on
>>>>>>>>>>> > >>>>> > >> > a.ident=i.ident where fid=agpfid;
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> >       OPEN adi;
>>>>>>>>>>> > >>>>> > >> >        FETCH adi INTO resadi;
>>>>>>>>>>> > >>>>> > >> >       CLOSE adi;
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> >       IF (resadi>0) THEN
>>>>>>>>>>> > >>>>> > >> >         select resadi as adi_wps;
>>>>>>>>>>> > >>>>> > >> >       END IF;
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> >     END;
>>>>>>>>>>> > >>>>> > >> >    END IF;
>>>>>>>>>>> > >>>>> > >> >    UNTIL tnames_done
>>>>>>>>>>> > >>>>> > >> >    END REPEAT;
>>>>>>>>>>> > >>>>> > >> >   CLOSE tnames;
>>>>>>>>>>> > >>>>> > >> >  END;
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> > END //
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> > -----------------------------------------
>>>>>>>>>>> Confidentiality Notice:
>>>>>>>>>>> > >>>>> > >> > The following mail message, including any
>>>>>>>>>>> attachments, is for the
>>>>>>>>>>> > >>>>> > >> > sole use of the intended recipient(s) and may contain
confidential
>>>>>>>>>>> > >>>>> > >> > and privileged information. The recipient is
responsible to
>>>>>>>>>>> > >>>>> > >> > maintain the confidentiality of this information and
to use the
>>>>>>>>>>> > >>>>> > >> > information only for authorized purposes. If you are
not the
>>>>>>>>>>> > >>>>> > >> > intended recipient (or authorized to receive
>>>>>>>>>>> information for the
>>>>>>>>>>> > >>>>> > >> > intended recipient), you are hereby notified that any
review, use,
>>>>>>>>>>> > >>>>> > >> > disclosure, distribution, copying, printing, or
>>>>>>>>>>> action taken in
>>>>>>>>>>> > >>>>> > >> > reliance on the contents of this e-mail is strictly
prohibited. If
>>>>>>>>>>> > >>>>> > >> > you have received this communication in error, please
notify us
>>>>>>>>>>> > >>>>> > >> > immediately by reply e-mail and destroy all copies of
the original
>>>>>>>>>>> > >>>>> > >> > message. Thank you.
>>>>>>>>>>> > >>>>> > >> >
>>>>>>>>>>> > >>>>> > >> > --
>>>>>>>>>>> > >>>>> > >> > MySQL General Mailing List
>>>>>>>>>>> > >>>>> > >> > For list archives: http://lists.mysql.com/mysql
>>>>>>>>>>> > >>>>> > >> > To unsubscribe:
>>>>>>> > >>>>> http://lists.mysql.com/[EMAIL PROTECTED]
>>>>>>>>>>> > >>>>> > >> >
>>>>>>> > >>> > > 
>>>>>>> > >>> > > 
>>>>>>> > >>> > > Want to read Hotmail messages in Outlook? The Wordsmiths show
you how.
>>>>> > >>> Learn
>>>>>>> > >>> > > Now
>>>>>>> > >>> > > 
>>>>> > >>> 
>> > 
>> 
<http://windowslive.com/connect/post/wedowindowslive.spaces.live.com-Blog-cns!
>>>>>>> > >>> > > 20EE04FBC541789!167.entry?ocid=TXT_TAGLM_WL_hotmail_092008>
>>>>> > >> > 
>>>>> > >> > 
>>>>> > >> > 
>>>>> > >> > 
>>>>> > >> > 
>>>>> > >> > 
>>>>> > >> > -------------------------
>>>>> > >> > Olaf Stein
>>>>> > >> > DBA
>>>>> > >> > Battelle Center for Mathematical Medicine
>>>>> > >> > Nationwide Children's Hospital, The Research Institute
>>>>> > >> > 700 Children's Drive
>>>>> > >> > 43205 Columbus, OH
>>>>> > >> > phone: 1-614-355-5685
>>>>> > >> > cell: 1-614-843-0432
>>>>> > >> > email: [EMAIL PROTECTED]
>>>>> > >> > 
>>>>> > >> > 
>>>>> > >> > ³I consider that the golden rule requires that if I like a program
I must
>>>>> > >> > share it with other people who like it.²
>>>>> > >> > Richard M. Stallman
>>>>> > >> > 
>>> > > 
>>> > > 
>>> > > Want to read Hotmail messages in Outlook? The Wordsmiths show you how.
>>> Learn
>>> > > Now 
>>> > > 
>>> 
<http://windowslive.com/connect/post/wedowindowslive.spaces.live.com-Blog-cns!
>>> > > 20EE04FBC541789!167.entry?ocid=TXT_TAGLM_WL_hotmail_092008>
>> > 
>> > 
>> > 
>> > 
>> > 
>> > 
>> > -------------------------
>> > Olaf Stein
>> > DBA
>> > Battelle Center for Mathematical Medicine
>> > Nationwide Children's Hospital, The Research Institute
>> > 700 Children's Drive
>> > 43205 Columbus, OH
>> > phone: 1-614-355-5685
>> > cell: 1-614-843-0432
>> > email: [EMAIL PROTECTED]
>> > 
>> > 
>> > ³I consider that the golden rule requires that if I like a program I must
>> > share it with other people who like it.²
>> > Richard M. Stallman
>> > 
>> > 
>> > 
>> > ----------------------------------------- Confidentiality Notice:
>> > The following mail message, including any attachments, is for the
>> > sole use of the intended recipient(s) and may contain confidential
>> > and privileged information. The recipient is responsible to
>> > maintain the confidentiality of this information and to use the
>> > information only for authorized purposes. If you are not the
>> > intended recipient (or authorized to receive information for the
>> > intended recipient), you are hereby notified that any review, use,
>> > disclosure, distribution, copying, printing, or action taken in
>> > reliance on the contents of this e-mail is strictly prohibited. If
>> > you have received this communication in error, please notify us
>> > immediately by reply e-mail and destroy all copies of the original
>> > message. Thank you.
> 
> 
> When your life is on the go—take your life with you. Try Windows Mobile® today
> <http://clk.atdmt.com/MRT/go/115298558/direct/01/>






-------------------------
Olaf Stein
DBA
Battelle Center for Mathematical Medicine
Nationwide Children's Hospital, The Research Institute
700 Children's Drive
43205 Columbus, OH
phone: 1-614-355-5685
cell: 1-614-843-0432
email: [EMAIL PROTECTED]


“I consider that the golden rule requires that if I like a program I must
share it with other people who like it.”
Richard M. Stallman

Reply via email to