2011-05-13 44 views
1

我目前的做法是這樣的:如何重命名MySQL表的SQL爲大寫

DECLARE cur CURSOR FOR SELECT table_name, COUNT(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'dbname'; 

OPEN cur; 

read_loop: LOOP 
FETCH cur INTO name, count; 
IF done = count THEN 
    LEAVE read_loop; 
ELSE 
    SET done = done + 1; 
END IF; 
    IF SUBSTR(name, 1, 4) = 'old_' THEN 
    ALTER TABLE name RENAME TO UPPER(SUBSTR(name,5)); 
    ELSE 
    ALTER TABLE name RENAME TO CONCAT('old_', name); 
    END IF; 
END LOOP; 

任何建議如何解決這個問題?

我在本地機器上運行MySQL 5.1.46。

+2

究竟需要解決的問題是什麼? – Zirak 2011-05-13 08:48:25

+1

Zirak說了什麼...... MySQL不區分大小寫,所以重命名錶格不會有什麼不同。 – anothershrubery 2011-05-13 08:54:28

+0

如果底層文件系統是mySQL *,則區分大小寫,但我仍然無法想到這樣做的原因 – 2011-05-13 09:12:47

回答

-1

默認情況下,MySQL對數據庫方案不區分大小寫。請參閱documentation。但是,您可以從my.cnf啓用區分大小寫。

但是InnoDB在Windows上只存儲小寫的表名。請參閱documentation

+2

不正確。 ''''''''''''''''''''''''''''這意味着數據庫和表名在Windows中不區分大小寫,並且在大多數Unix中都區分大小寫。' – 2011-05-13 09:12:06

+0

請注意,如我所說,可以從my.cnf中禁用區分大小寫。 – 2011-05-13 11:50:17

+0

我在'my.cnf'中啓用了該選項,我需要它。我有這些小寫的表格,我的應用程序需要大寫。這只是與MySQL可能嗎? – Daniel 2011-05-16 06:22:42