At 17:50 +0200 5/28/05, [EMAIL PROTECTED] wrote:
Hi,
As Paul said, since concat gives a string, you can use this fact in preparing
statement (v4.1). This works fine for me :
Ah, yes. This'll work. I forgot about prepared statements. :-)
But use replace to change '-' to '_' in the table_name.
set @tt:=concat('rename table flows_2005_05_27 to ',CONCAT("flows_",
replace(DATE_SUB(CURDATE(), interval 2 day),'-','_')),';');
select @tt;
mysql> show tables like 'flow%';
+-------------------------+
| Tables_in_world (flow%) |
+-------------------------+
| flows_2005_05_27 |
+-------------------------+
1 row in set (0.00 sec)
mysql>
mysql> set @tt:=concat('rename table flows_2005_05_27 to ',CONCAT("flows_",
replace(DATE_SUB(CURDATE(), interval 2 day),'-','_')),';');
mysql> prepare stmt from @tt;
Query OK, 0 rows affected (0.00 sec)
Statement prepared
mysql> execute stmt ;
mysql> deallocate prepare stmt;
mysql> show tables like 'flow%';
+-------------------------+
| Tables_in_world (flow%) |
+-------------------------+
| flows_2005_05_26 |
+-------------------------+
1 row in set (0.00 sec)
Mathias
Selon Paul DuBois <[EMAIL PROTECTED]>:
At 11:00 -0400 5/28/05, Jason Dixon wrote:
>On May 28, 2005, at 8:51 AM, Paul DuBois wrote:
>
>>At 8:12 -0400 5/28/05, Jason Dixon wrote:
>>>I'm trying to rename some tables for archival, but the table
>>>renaming is failing when I use CONCAT() to form the table string
>>>name:
>>
>>CONCAT() produces a string, not an identifier.
>
>Fine. Is there any way to do this in MySQL or do I need to fall
>back on my Perl? It's not a big deal, I'm just curious now.
Perl. Construct the table identifier and place the result into your
SQL statement, then execute the statement.
--
Paul DuBois, MySQL Documentation Team
Madison, Wisconsin, USA
MySQL AB, www.mysql.com
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]
--
Paul DuBois, MySQL Documentation Team
Madison, Wisconsin, USA
MySQL AB, www.mysql.com
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]