2009-11-16 79 views
4

是否有可能以某種方式使用NOW()函數或類似的MYSQL重命名錶()?重命名錶爲'NOW()+ old_table_name'

我需要的,這是因爲而不是丟棄舊錶直線距離我們更願意首先重命名然後old_ 日期表中被採用,OUF-的使用 _ table_name的,所以當我們actualy刪除它,我們的理由不知過了多久表一直是「不可用」

回答

7

您可以創建一個動態SQL語句並執行:

SET @tablename = 'MyTable'; 

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

PREPARE STMT FROM @query; 
EXECUTE STMT; 

curdate()函數返回當前日期字符串格式yyyy-MM-dd

P.S.您不能在查詢瀏覽器中執行這樣的多行語句,但可以將它們放入文件(例如commandfile.sql)中並運行它們:

mysql -u <user> -p<password> <dbname> < commandfile.sql