一、復制表里面的一條記錄并插入表里面
10年積累的網站制作、成都網站設計經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先制作網站后付款的網站建設流程,更有潤州免費網站建設讓你可以放心的選擇與我們合作。
① insert into article(title,keywords,desc,contents) select title,keywords,desc,contents from article where article_id = 100;
二、復制表里的多條數據/記錄,并插入到表里面
① INSERT INTO `power_node`(title,type,status) SELECT title,type,status FROM power_node WHERE id 5;
② INSERT into jiaban (num,overtime) SELECT num,overtime from jiaban where id IN(1,3,5,6,7,9);
三、在創建表時,就插入另一張表里面的某些數據
① create table user AS select * from member where id 10
MySQL 復制表
如果我們需要完全的復制MySQL的數據表,包括表的結構,索引,默認值等。 如果僅僅使用CREATE TABLE … SELECT 命令,是無法實現的。
本章節將為大家介紹如何完整的復制MySQL數據表,步驟如下:
使用 SHOW CREATE TABLE 命令獲取創建數據表(CREATE TABLE) 語句,該語句包含了原數據表的結構,索引等。
復制以下命令顯示的SQL語句,修改數據表名,并執行SQL語句,通過以上命令 將完全的復制數據表結構。
如果你想復制表的內容,你就可以使用 INSERT INTO … SELECT 語句來實現。
-from 樹懶學堂 - 一站式數據知識平臺
如果從庫上表 t 數據與主庫不一致,導致復制錯誤,整個庫的數據量很大,重做從庫很慢,如何單獨恢復這張表的數據?通常認為是不能修復單表數據的,因為涉及到各表狀態不一致的問題。下面就列舉備份單表恢復到從庫會面臨的問題以及解決辦法:
場景 1
如果復制報錯后,沒有使用跳過錯誤、復制過濾等方法修復主從復制。主庫數據一直在更新,從庫數據停滯在報錯狀態(假設 GTID 為 aaaa:1-100)。
修復步驟:
在主庫上備份表 t (假設備份快照 GTID 為 aaaa:1-10000);
恢復到從庫;
啟動復制。
這里的問題是復制起始位點是 aaaa:101,從庫上表 t 的數據狀態是領先其他表的。aaaa:101-10000 這些事務中只要有修改表 t 數據的事務,就會導致復制報錯 ,比如主鍵沖突、記錄不存在(而 aaaa:101 這個之前復制報錯的事務必定是修改表 t 的事務)
解決辦法:啟動復制時跳過 aaaa:101-10000 這些事務中修改表 t 的事務。
正確的修復步驟:
1. 在主庫上備份表 t (假設備份快照 GTID 為 aaaa:1-10000),恢復到從庫;
2. 設置復制過濾,過濾表 t:
CHANGE REPLICATION FILTER REPLICATE_WILD_IGNORE_TABLE = ('db_name.t');
3. 啟動復制,回放到 aaaa:10000 時停止復制(此時從庫上所有表的數據都在同一狀態,是一致的);
START SLAVE UNTIL SQL_AFTER_GTIDS = 'aaaa:10000';
4. 刪除復制過濾,正常啟動復制。
注意事項:這里要用 mysqldump --single-transaction --master-data=2,記錄備份快照對應的 GTID
場景 2
如果復制報錯后,使用跳過錯誤、復制過濾等辦法修復了主從復制。主、從庫數據一直在更新。
修復步驟:
在主庫上備份表 t (假設備份快照 GTID為 aaaa:1-10000);
停止從庫復制,GTID為 aaaa:1-20000;
恢復表 t 到從庫;
啟動復制。
這里的問題是復制起始位點是 aaaa:20001,aaaa:10000-20000 這些事務將不會在從庫上回放,如果這里面有修改表 t 數據的事務,從庫上將丟失這部分數據。
解決辦法:從備份開始到啟動復制,鎖定表 t,保證 aaaa:10000-20000 中沒有修改表 t 的事務。
正確修復步驟:
對表 t 加讀鎖;
在主庫上備份表 t;
停止從庫復制,恢復表 t;
啟動復制;
解鎖表 t。
如果是大表,這里可以用可傳輸表空間方式備份、恢復表,減少鎖表時間。
這個確實簡單
mysql支持這種復制
語法:
insert
into
`tb`(`field1`,`field2`..)
select
`field1`,`field2`..
from
`tb`;
注意修改為你自己的表名和字段名
兩個字段列表(`field1`,`field2`..)數量要相同
你要全字段復制,就把除了自增字段之外的所有字段都列出來
本文題目:mysql怎么復制整個表,mysql復制表的語句
鏈接URL:http://vcdvsql.cn/article42/hshihc.html
成都網站建設公司_創新互聯,為您提供靜態網站、網頁設計公司、建站公司、企業建站、微信公眾號、商城網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯