MYSQL ALTER DATABASE介绍

语法

ALTER DATABASE可以更改数据库的信息。 这些信息存储在数据库目录的db.opt文件中。 要使用ALTER DATABASE,需要对数据库具有ALTER权限。 ALTER SCHEMA和ALTER DATABASE的功能一致。

有时也可以省略数据库名称,在这种情况下,该语句适用于默认数据库。

字符集

CHARACTER SET子句更改默认数据库字符集。 COLLATE子句更改默认数据库排序规则。 第10章,字符集,归类和Unicode,讨论了字符集和归类名称。

您可以分别使用SHOW CHARACTER SET和SHOW COLLATION语句查看可用的字符集和排序规则。

如果更改数据库的默认字符集或排序规则,则必须删除并重新创建使用数据库默认值的存储过程,以便它们使用新的默认值。 (在存储过程中,如果未明确指定字符集或排序规则,则具有字符数据类型的变量将使用数据库默认值。

从MySQL 5.1之前的版本升级

包含UPGRADE DATA DIRECTORY NAME子句的语法更新与数据库关联的目录的名称,以使用MySQL 5.1中实现的编码将数据库名称映射到数据库目录名称。 本条款在以下条件下使用:

  • 它用于将MySQL从较早版本升级到5.1或更高版本。
  • 如果名称中包含需要编码的特殊字符,则用于将数据库目录名称更新为当前编码格式。
  • 该语句由mysqlcheck使用(由mysql_upgrade调用) 。

例如,如果MySQL 5.0中的数据库名称为a-b-c,则该名称包含-(破折号)字符的实例。 在MySQL 5.0中,数据库目录也称为a-b-c,它不一定对所有文件系统都安全。 在MySQL 5.1和更高版本中,相同的数据库名称被编码为a @ 002db @ 002dc以产生文件系统无关的目录名称。

当MySQL安装从旧版本升级到MySQL 5.1或更高版本时,服务器将显示诸如abc(采用旧格式)的名称为#mysql50#abc,并且您必须使用#mysql50#引用该名称。 字首。 在这种情况下,请使用UPGRADE DATA DIRECTORY NAME明确告诉服务器将数据库目录名称重新编码为当前编码格式:

执行完此语句后,可以将数据库称为a-b-c,而没有特殊的#mysql50#前缀。

注意:在MySQL 5.7.6中不赞成使用UPGRADE DATA DIRECTORY NAME子句,在MySQL的未来版本中将删除该子句。 如果需要转换MySQL 5.0数据库或表名,一种解决方法是在升级到最新版本之前将MySQL 5.0安装升级到MySQL 5.1。

0

发表评论

邮箱地址不会被公开。