MySQL数据库Alter database 处理逻辑
来源:互联网 发布:vx是什么聊天软件 编辑:程序博客网 时间:2024/06/05 02:06
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。
- MySQL数据库Alter database 处理逻辑
- mysql:sql alter database修改数据库字符集
- 修改数据库---ALTER DATABASE
- database:alter mysql
- 修改数据库ALTER DATABASE和ALTER SYSTEM
- 使用alter database修改数据库
- 用alter database语句修改数据库
- 不能打开数据库alter database open
- MySQL基础知识---------ALTER TABLE/CREATE DATABASE语法
- alter database
- ALTER DATABASE
- ALTER DATABASE ...
- ALTER DATABASE
- ALTER DATABASE 数据库镜像 (Transact-SQL)-转
- alter system ,alter database,alter session
- DataBase: 数据库物理结构与逻辑结构
- MySQL逻辑查询处理
- MySql 数据库逻辑架构
- flickr网站用到的php技术
- STL系列之五 priority_queue 优先级队列
- 企业级项目中最常用到的SQL
- ArcEngine中画点画线画面
- 探索ORACLE不完全恢复之--基于SCN恢复 第一篇
- MySQL数据库Alter database 处理逻辑
- 锤子和钉子
- 请手动释放你的资源(Please release resources manually)
- drupal7中的用户添加于更新(完全个人开发所得,如有不妥之处请大虾指出)
- sakai
- Ubuntu13.10 开机启动菜单 删除多余的内核(旧版本) 调整不同操作系统的启动顺序
- fatal error C1047 对象或库文件“....Win32Release xxx.obj”是使用比创建其他对象所用编译器旧的编译器创建的;请重新生成旧的对象和库
- 关于在android上 添加的jar包?
- ArcIMS学习之 定制HTML VIEWER笔记