4

是否有可能在MYSQL重命名表()中以某种方式使用NOW()函数或类似的东西?

我需要这个的原因是因为我们不是直接删除旧表,而是先重命名然后重命名为 old_date -table-was-taken-ouf-of-use_table_name所以当我们实际删除它时,我们知道表有多长时间一直“不可用”

4

1 回答 1

7

您可以创建动态 SQL 语句并执行该语句:

SET @tablename = 'MyTable';

SELECT @query := CONCAT('RENAME TABLE `', @tablename, '` TO `', 
    CURDATE(), @tablename, '`');

PREPARE STMT FROM @query;
EXECUTE STMT;

curdate()函数以格式返回当前日期作为字符串yyyy-MM-dd

PS您不能从查询浏览器中执行这样的多行语句,但您可以将它们放入一个文件(例如名为commandfile.sql)并像这样运行它们:

mysql -u <user> -p<password> <dbname> < commandfile.sql
于 2009-11-16T09:33:10.713 回答