複製備份表

2021-06-28 06:23:57 字數 1098 閱讀 5476

1. 複製表結構及其資料: create table table_name_new as select * from table_name_old 

2. 只複製表結構: create table table_name_new as select * from table_name_old where 1=2; 

或者: create table table_name_new like table_name_old 3. 

只複製表資料:如果兩個表結構一樣:insert into table_name_new select * from table_name_old 

如果兩個表結構不一樣:insert into table_name_new(column1,column2...) select column1,column2... from table_name_oldpasting

解決方法:

1、直接執行delete from pers where persnbr>=100000000,結果速度超慢。

2、利用truncate語法:

create table pers_temp as select  * from pers where persnbr<100000000;--把小於100000000的記錄備份一下,查詢語句會比較快

truncate  table  pers;--將pers中的資料全部清除,速度很快

insert into pers select * from  pers_temp ; --將備份的資料重新插入到pers表中

truncate和delete對比

1、truncate比delete速度快很多,且使用的系統和事務日誌資源少。這是因為truncate通過釋放儲存表資料所用的資料頁來刪除資料,並且只在事務日誌中記錄頁的釋放;而delete語句每次刪除一行,並在事務日誌中為所刪除的每一行記錄一項。

2、truncate是ddl語句,delete是dml語句。和其它ddl語句一樣,truncate將會被隱式提交,所以不能對truncate使用rollback命令;而delete語句每條記錄的刪除都會被記錄在事務日誌中,所以可以被rollback。

3、truncate語句將會把表的索引值重新設定成初始大小,而delete不能。

mysql 如何複製 備份表資料

大家需要記住生產上運算元據一定需要小心小心再小心。所以當你需要更新生產上表資料的時候,需要先備份表資料。驗證沒有問題後再刪掉備份。直接使用如下sql create table new table name select field1,field2.from old table name 有時候運維會...

oracle大資料表複製備份個人經驗

b 前提 b 資料庫倉庫a 就拿oracle11g為例 中有兩個使用者user1和user2,現在有user1中有表ldm table1,且表ldm table1有資料5千萬以上,ldm table1中的資料是從其他庫b 資料來源 中抽取過來的,前期業務理解不夠或者需求有變,資料有變動需要重新從b中...

使用Robocopy複製 備份檔案夾

robocopy 是微軟提供的命令列複製工具,有非常豐富的引數供選擇。當要操作大量的檔案複製和資料夾備份,免費工具中,robocopy 是不二之選。有些遺憾的是,我還沒發現 robocopy 可以有不覆蓋目標目錄檔案的功能。如果複製過程中網路中斷,只能再從頭來過。robocopy 能夠提供的特色功能...