【问题标题】:How can I change case of database name in MySQL?如何在 MySQL 中更改数据库名称的大小写?
【发布时间】:2024-07-21 14:20:01
【问题描述】:

我的数据库名称是SPM,我想将其更改为spm(小写字母)。

我尝试过使用

RENAME DATABASE SPM TO spm;

,但我收到以下错误消息:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DATABASE SPM to spm' at line 1

我的服务器版本:5.0.45

【问题讨论】:

  • ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“SPM SPM to spm”附近使用正确的语法
  • mysql> 将数据库 SPM 重命名为 spm; ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“DATABASE SPM TO spm”附近使用正确的语法

标签: mysql database rename


【解决方案1】:

没有数据库命令可以做到这一点。您基本上必须在数据库之外进行。以下是一些参考资料,概述了可能的解决方案。这个question已经回答得很好了

这可能是你的情况

mysqladmin create spm
mysqldump SPM | mysql spm

在您确认一切正常后,您可以删除原始数据库。

drop database SPM

参考资料 Rename database 1 / Rename database 2

[关于“RENAME DATABASE”命令的注意事项:该语句是在 MySQL 5.1.7 中添加的,但被发现有危险并在 MySQL 5.1.23 中被删除。]

【讨论】:

  • 只是想补充一下,phpMyAdmin 有重命名功能。只需选择数据库,然后单击“操作”,然后单击重命名。它使用新名称创建一个数据库,复制旧名称,然后将其删除。
【解决方案2】:
RENAME {DATABASE | SCHEMA} db_name TO new_db_name;

此语句在 MySQL 5.1.7 中添加,但被发现有危险并在 MySQL 5.1.23 中删除。它旨在使升级 5.1 之前的数据库能够使用 5.1 中实现的编码来将数据库名称映射到数据库目录名称。但是,使用此语句可能会导致数据库内容丢失,这就是它被删除的原因。不要在存在 RENAME DATABASE 的早期版本中使用它。

要使用新编码执行升级数据库名称的任务,请改用ALTER DATABASE db_name UPGRADE DATA DIRECTORY NAME

【讨论】:

    【解决方案3】:

    使用 mysql_dump 转储旧模式的数据库内容(它产生 SQL 输出,并且可以包含所有对象 CREATE 语句),切换到新模式,并执行该脚本mysql> . dump.sql

    如果是大型数据库,这可能需要一段时间,但这是最安全的方法(确保在转换过程进行时暂停所有使用数据库的应用程序)。

    当您对一切正常感到满意时,删除旧架构。

    【讨论】:

    • 您能否详细说明如何实现这一点,因为我从未使用过 mysql 转储,因此不确定它是如何工作的
    • 您真的必须将其放入文件中吗?这是特定于窗口的吗?
    【解决方案4】:

    这是通过RENAME DATABASE 语句完成的:

    RENAME DATABASE old_db_name TO new_db_name;
    

    此语句在 MySQL 5.1.7 中添加,但被发现有危险并在 MySQL 5.1.23 中删除。

    【讨论】:

    • 我希望你不介意我改变了你的答案。如果您认为不合适,请随时回复。
    • 不适用。而且它不应该被使用。
    • 无用的评论,因为答案已经不应该使用了。
    • 通知没有数据库命令来做。除非你使用 MySQL 5.1.7。
    【解决方案5】:

    您可以使用 Mysql 用户界面更改数据库名称

    Step1: 首先进入 localhost/phpmyadmin/ 并点击你的数据库

    第二步:点击操作标签

    步骤 3:在 (Rename database to) 文本字段中输入新的数据库名称

    Step4:点击Go按钮

    【讨论】:

      【解决方案6】:

      使用rename database 命令。

      您也可以尝试停止 mysql 服务器并将包含您的数据库数据的文件夹重命名为您喜欢的名称。然后启动您的服务器并检查授权 - 它们可能仍包含对旧数据库名称的引用。

      【讨论】:

      • ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“SPM SPM to spm”附近使用正确的语法
      • mysql> 将数据库 SPM 重命名为 spm; ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“DATABASE SPM TO spm”附近使用正确的语法
      • 你应该将你的服务器升级到 5.1.7
      • 我无法将它升级到 5.1.7,有没有办法使用 5.0 版本解决它
      • 重命名数据库不存在,如果存在则不应使用。 However, use of this statement could result in loss of database contents, which is why it was removed.
      最近更新 更多