【发布时间】:2010-12-16 23:52:29
【问题描述】:
是否有可能在 MYSQL rename table() 中以某种方式使用 NOW() 函数或类似的东西?
我需要这个的原因是因为我们宁愿先重命名然后重命名为 old_date-table-was-taken-ouf-of-use_table_name,而不是直接删除旧表,所以当我们实际上删除它我们知道该表已经“不可用”多久了
【问题讨论】:
是否有可能在 MYSQL rename table() 中以某种方式使用 NOW() 函数或类似的东西?
我需要这个的原因是因为我们宁愿先重命名然后重命名为 old_date-table-was-taken-ouf-of-use_table_name,而不是直接删除旧表,所以当我们实际上删除它我们知道该表已经“不可用”多久了
【问题讨论】:
您可以创建动态 SQL 语句并执行它:
SET @tablename = 'MyTable';
SELECT @query := CONCAT('RENAME TABLE `', @tablename, '` TO `',
CURDATE(), @tablename, '`');
PREPARE STMT FROM @query;
EXECUTE STMT;
curdate() 函数以yyyy-MM-dd 格式的字符串形式返回当前日期。
附:您不能从查询浏览器中执行这样的多行语句,但您可以将它们放入一个文件(例如名为 commandfile.sql)并像这样运行它们:
mysql -u <user> -p<password> <dbname> < commandfile.sql
【讨论】: