前幾天在備份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