4

我在网上找到了几个类似于下面的脚本,它们可以预览我触发脚本后所有表名的外观:

select concat('RENAME TABLE ', TABLE_NAME, ' TO ', UPPER(TABLE_NAME), ';') from information_schema.TABLES where TABLE_SCHEMA = 'your_db'

但我需要的是一个升级脚本,它实际上更新了数据库中的表名,而不仅仅是让我预览这些名称。

我知道这些朋友:

lower_case_table_names = 1
lower_case_file_system = 1

但这不是一个选项,因为我无法在我的域上的 .ini 文件中进行更改 - 因此,与其在线重命名每个表,我更喜欢一个简单的脚本来一次重命名(并保存)所有表名。 .. - 这样的更新脚本会是什么样子......?

4

2 回答 2

16

当我的托管公司将 MySQL 数据库从 Windows 迁移到 Linux 时,我遇到了类似的问题,必须将所有表名更改为大写:

首先在SQL窗口中运行它phpmyadmin

select concat('rename table ', table_name, ' to ' , upper(table_name) , ';') from information_schema.tables where table_schema = 'your_schema_name';

这将生成一个脚本,将所有表名称更改为大写复制脚本并将其粘贴到SQL窗口中并运行。

于 2013-11-06T13:18:27.867 回答
1

您可能需要考虑以下几点:

   Usage Notes for the INFORMATION_SCHEMA Database
   Although you can select INFORMATION_SCHEMA as the default database with a 
   USE statement,
   you can only read the contents of tables, 
   not perform INSERT, UPDATE, or DELETE operations on them.

链接:http ://dev.mysql.com/doc/refman/5.5/en/information-schema.html

这是另一个解释信息模式问题更新的链接:

mysql root权限更新information_schema错误

和评论:

https://stackoverflow.com/a/3438369/362574

信息模式表是如何在 mysql 中实现的:

https://dba.stackexchange.com/questions/3335/how-is-information-schema-implemented-in-mysql

评论 :

https://dba.stackexchange.com/a/3336/12967

于 2013-05-07T10:35:59.423 回答