将表重命名为'NOW()+ old_table_name'

pvg*_*ijn 4 mysql rename

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

我需要这个的原因是因为我们不是直接丢弃旧表,而是首先重命名为old_ date-table-was-taken-ouf-of-use _ table_name所以当我们实际删除它时,我们知道表有多长一直'不可用'

And*_*mar 7

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

SET @tablename = 'MyTable';

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

PREPARE STMT FROM @query;
EXECUTE STMT;
Run Code Online (Sandbox Code Playgroud)

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

PS您无法从查询浏览器执行这样的多行语句,但您可以将它们放入文件(例如调用commandfile.sql)并运行它们,如:

mysql -u <user> -p<password> <dbname> < commandfile.sql
Run Code Online (Sandbox Code Playgroud)