MySQL資料庫Alter database 處理邏輯

來源:互聯網
上載者:User

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。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.