如何在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就可以做到这一点吗?为什么不禁用该选项并使其不区分大小写?