踩坑Mysql備份數據create table table_name_bak as select * table_name

       前幾天在備份mysql數據的時候,發現了一個細節問題,用本篇文章記錄下來。

       使用create table my_table_bak as select * from my_table ;可以快速的備份整個數據表的表結構和表數據。使用這個命令的時候,要求my_table_bak這個表示不存在的。發現的問題是,雖然有備份表結構,但是備份之後的表裏面是一些屬性會丟失,比如主鍵,和自增長特性等。

       1、如何補救這個問題?

             通過DDL語句把表的主鍵修改爲自增長類型,腳本如下:alter table my_table_bak modify id int(11) auto_increment;

       2、表備份的正確姿勢?

            1、查看要備份的表的建表的語句:show create table my_table;

            2、得到建表的語句之後,把表名修改一下,然後執行該DDL腳本;

                 也可以直接用create table my_table_bak like my_table

            3、使用insert into my_table_bak select * from my_table;

 

     3、更安全的操作

          1、可以在得到DDL腳本之後,直接保存到文檔中;

          2、使用mysql的圖形界面,把表中的數據導出爲insert語句,這種操作即使把數據庫刪了也沒有影響

   4、更加高效優雅的備份數據庫:https://blog.csdn.net/gxb2260/article/details/82715507

   

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章