如何在SQL中将MySQL表重命名为大写

如何在SQL中将MySQL表重命名为大写,mysql,rename,Mysql,Rename,我目前的做法如下: 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 = do

我目前的做法如下:

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。

默认情况下,MySQL对数据库方案不区分大小写。看看吧。但是您可以从
my.cnf
启用区分大小写


但是,InnoDB在Windows上只存储小写的表名。请参阅。

需要解决的问题到底是什么?Zirak说的……MySQL不区分大小写,因此重命名表不会有任何区别。如果底层文件系统是区分大小写的,MySQL是区分大小写的,但我仍然找不到这样做的理由。从该手册页面:
这意味着数据库和表名在Windows中不区分大小写,在大多数Unix中也不区分大小写。
请注意,如我所说,可以从
my.cnf
禁用区分大小写。我在“my.cnf”中启用了该选项,我需要它。我有这些小写表,我的应用程序需要大写。仅使用MySQL就可以做到这一点吗?为什么不禁用该选项并使其不区分大小写?