ALTER DATABASE语句
ALTER {DATABASE |SCHEMA } [db_name] alter_specification ... alter_specification: [DEFAULT ]CHARACTER SET [=] charset_name | [DEFAULT ]COLLATE [=] collation_name |DEFAULT ENCRYPTION [=] {'Y' | 'N'}
ALTER DATABASE
使您可以更改数据库的总体特征。这些特征存储在数据字典中。要使用ALTER DATABASE
,您需要ALTER
数据库特权。ALTER SCHEMA
是的同义词ALTER DATABASE
。
可以从第一种语法中省略数据库名称,在这种情况下,该语句适用于默认数据库。
民族语言特征
该CHARACTER SET
子句更改默认数据库字符集。该COLLATE
子句更改默认数据库排序规则。字符集,归类和Unicode,讨论了字符集和归类名称。
您可以分别使用SHOW CHARACTER SET
和SHOW COLLATION
语句参见可用的字符集和排序规则。有关更多信息,请参见“ SHOW CHARACTER SET语句”和“ SHOW COLLATION语句”。
如果更改数据库的默认字符集或排序规则,则必须删除并重新创建使用数据库默认值的存储例程,以便它们使用新的默认值。(在存储的例程中,如果未明确指定字符集或排序规则,则具有字符数据类型的变量将使用数据库默认值。请参见“ CREATE PROCEDURE和CREATE FUNCTION语句”。)
加密
DEFAULT ENCRYPTION
MySQL 8.0.16中引入的子句定义了默认的数据库加密,该默认加密由数据库中创建的表继承。更改数据库的默认加密不会更改与模式关联的现有表的加密。只有新创建的表才能继承默认的数据库加密。一个ALTER DATABASE
没有执行的语句DEFAULT ENCRYPTION
子句保留现有的默认数据库加密。如果table_encryption_privilege_check
启用了变量,TABLE_ENCRYPTION_ADMIN
则需要特权来指定不同于该default_table_encryption
设置的默认加密设置。有关更多信息,请参见为架构和常规表空间定义加密默认值。