mysql with variable table name

Christos Cheretakis xalkina at otenet.gr
Wed Sep 15 16:43:03 EEST 2004


Axelman wrote:

> Γειά Χαρά!
> 
> Έχω μια ερώτηση που με βασανίζει εδώ και αρκετό καιρό σχετικά με τη 
> mysql v5.0.0. Προσπαθώ να φτιάξω ένα stored procedure που να δέχεται ως 
> input parameter ενα varchar που θα είναι το table name και θα γυρνάει τα 
> data αυτού το table. Κάτι σαν
> 
> create procedure myproc(table_name varchar(50))
> bebin
>    select * from table_name
> end
> 
> όσο κι αν έχω ψάξει δεν έχω βρεί απάντηση στο θέμα. Μπορεί κάποιος να με 
> βοηθήσει λίγο?

   Για να κάνεις κάτι τέτοιο θα πρέπει η βάση σου να υποστηρίζει dynamic 
sql.

   Όταν πας να δημιουργήσεις την procedure με το create, ο compiler 
ελέγχει τον κώδικα και πρέπει να μπορεί να βρει όλα τα 
ονόματα/αντικείμενα στα οποία αναφέρεσαι --εδώ στο table_name.

   Όταν υποστηρίζει dynamic sql κάνεις κάτι όπως:

   $sql_statement = 'SELECT * FROM ' || table_name;
   execute immediate $sql_statement;

Το συντακτικό τώρα που χρησιμοποίησα είναι κάτι ανάμεσα σε PL/SQL & PHP, 
γιατί δεν ξέρω αν και πως το υποστηρίζει η My. Υποψιάζομαι όμως πως δε 
θα το υποστηρίζει...

> Ευχαριστώ πολύ
> axelmangr
> 
> 

	Χ/




More information about the Linux-greek-users mailing list