2015-05-14 64 views
0

重命名MySQL表名在MySQL中,我需要與標識上月後綴重命名錶,我想這樣做與此語法:與CONCAT

RENAME TABLE 'myTable' TO CONCAT('myTable',DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y_%m')); 

鐵:我表名「客戶」,我想要的是「customer_2015_04」。

問題在於連續排列。

我在做什麼錯?

最好的問候,

+1

你有沒有考慮增加一個日期列的表?如果你需要在超過約四分之一的時間之後搜索所有表格中的客戶,我正在設想惡夢。 – Arth

+0

http://stackoverflow.com/questions/1741008/rename-table-to-now-old-table-name –

+0

你是什麼意思的「問題是與concat命令」?你有什麼錯誤嗎? – Phil

回答

2

我認爲你需要做到這一點使用準備好的語句:

set @sql = CONCAT('RENAME TABLE myTable TO myTable', 
        DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y_%m') 
       ); 

prepare s from @sql; 

execute s; 
+0

你在一分鐘內解決了我的問題!非常感謝 – discostu