Home  >  Article  >  Database  >  MySQL数据库Alter database 处理逻辑

MySQL数据库Alter database 处理逻辑

WBOY
WBOYOriginal
2016-06-07 17:18:121472browse

Alter database的处理过程没有像alter table那么恐怖,处理逻辑还是比较清晰的。Alter database的操作的业务逻辑较为简单,但是功

Alter database的处理过程没有像alter table那么恐怖,处理逻辑还是比较清晰的。先整理如下:

1、查看数据库名是否有效

调用check_db_name()(table.cc:2876)查看数据库名是否有效,其中调用check_table_name()(table.cc:2904)函数。check_table_name这个函数名有些误导,实际是检查数据库名是否合法。

2、查看是否有权修改

调用check_access()(sql_parse.cc:4715)检查数据库是否存在,用户对数据库是否有权限修改。

3、数据库修改

调用mysql_alter_db()(sql_db.cc:685)对数据库进行修改。修改前,调用lock_schema_name()(lock.cc:767)函数,获取schema的互斥锁。调用write_db_opt()(sql_db.cc:313)函数,重建db.opt文件,db.opt文件记录的内容是默认字符集的内容。之后写binlog。

通过以上分析可知,Alter database的操作的业务逻辑较为简单,,但是功能也较简单,alter database选项仅仅可以修改默认charset和默认的collation。

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn