當前位置:首頁 » 編程語言 » mysql復製表數據sql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

mysql復製表數據sql

發布時間: 2022-05-29 15:15:42

Ⅰ mysql怎麼復制一個資料庫中的一張表到另外一個資料庫

什麼系統?兩個庫是不是在同一台機?
linux下個人做法:
1.同一台機
用mysqlmp導出表數據(具體使用可以查一下)
mysqlmp
-h
host
-P
port
-p
password
-u
user
database
--default-character-set=utf8
--add-drop-table
tablename
-r
/tmp/table.sql
再導入數據
mysqlmp
-h
host
-P
port
-p
password
-u
user
database
tablename
</tmp/tablename.sql
或者在進入mysql後用source命令導入。
2.不同的機,就需要先把數據文件導出,然後復制到另外一台機,再進行1的導入操作。
windows下沒試過,一般都直接用phpMyAdmin來操作了,界面操作沒什麼說的。

Ⅱ MySQL如何復製表中的一條記錄並插入

1、打開navicat軟體,打開要復製表的資料庫,如下圖所示:

Ⅲ 如何對MySQL數據表進行復制,表結構復制

1、復製表結構(語法
creata
table
舊表
select
*
from
新表)
create
table
t1(
id
int
unsigned
auto_increment
primary
key,
name
varchar(32)
not
null
default
'',
pass
int
not
null
default
0
);
desc
查看錶結構
創建表
t2
同時復製表
t1
表結構
create
table
t2
select
*
from
t1;
desc
t2
查看錶結構
注意:兩張的表欄位結構一樣,但是
主鍵
primary
key

自增
auto_increment
沒有了,所以這種方法不推薦大家使用,那如何才能創建出兩張完全一樣的表呢,辦法肯定有的,如下面語句。
create
table
t2
like
t1;
這就可以創建一張
t2

t1
完全一樣的表了。
2、指定欄位復製表結構
語法:
create
table
新表
select
欄位1,欄位2

from
舊表
3、復製表中數據
假設要把表
t1
中的數據全部復制到表
t2中
insert
into
t2
select
*from
t1;
如果只想復制某個欄位
insert
into
t2(欄位1,欄位2)
select
欄位1,欄位2from
t1;

Ⅳ 求MySQL復製表數據的sql語句

insert
into
table
b
(xxx)
select
'name'
from
table
a
----插入a表數據進b表
select
*
from
table
b
order
by
id
----查看插入後b表的數據
(註:前提是b表的id欄位不能為null
啟用標識
遞增量為
1)

Ⅳ 如何將mysql中的一個表復制到sqlserver中

1:MSSQLServer資料庫導入到MySql資料庫
步驟:
1.安裝mysql資料庫的ODBC驅動,mysql-connector-odbc-3.51.23-win32.msi,下載並安裝。
2.在Mysql中創建資料庫實例。
3.打開控制面板 --> 管理工具 --> 數據源ODBC,在用戶DSN中添加一個MySQL ODBC 3.51數據源。
4.在登錄login選項卡中輸入數據源名稱Data Source Name,此處輸入MysqlDNS(也可以自己隨便命名,只要在後面導入數據的時候選擇正確的數據源名字就行);然後輸入伺服器Server,用戶User,密碼Password,輸入正確後選擇要導入的資料庫,Database選擇你需要導入的資料庫。在連接選項connect options中根據需要設置MySql使用的埠port和字元集Character Set。
註:字元集一定要和Mysql伺服器相對應,如果Mysql使用了gbk字元集,則一定要設置字元集為gbk,否則導入到Sql Server可能會出現問號亂碼。
5.打開sql server企業管理器,選擇該資料庫,單擊右鍵選擇所有任務 --> 導出數據。
6.『選擇數據源』為默認,『選擇目的』為剛剛安裝的mySQL數據源,用戶/系統DSN為MysqlDNS。在『指定表復制或查詢』中選擇『從源資料庫復製表和視圖』,在『選擇源表和視圖』里,選擇需要導入的表,即可將數據從MSSQLServer資料庫導入到MySql資料庫中。

2:MySql資料庫導入到MSSQL資料庫中
1.安裝mysql資料庫的ODBC驅動,mysql-connector-odbc-3.51.19-win32.msi
2.打開控制面板\管理工具\數據源ODBC,在用戶DSN中添加一個MySQL ODBC 3.51數據源。
3.在登錄login選項卡中輸入數據源名稱Data Source Name,此處輸入MysqlDNS;然後輸入伺服器,用戶User,密碼Password,輸入正確後選擇要導入的資料庫。在連接選項connect options中根據需要設置MySql使用的埠port和字元集Character Set。
註:字元集一定要和Mysql伺服器相對應,如果Mysql使用了gbk字元集,則一定要設置字元集為gbk,否則導入到Sql 可能會出現問號亂碼。
4.打開sql server企業管理器,新建一資料庫MySql。選擇該資料庫,單擊右鍵選擇所有任務\導入數據。
5.選擇數據源為其它(ODBC數據源),用戶/系統DSN為MysqlDNS。其餘根據向導進行,即可將數據從MySql資料庫導入到MSSQL資料庫中

Ⅵ mysql資料庫如何將相同資料庫中的一個表的數據復制到另一個表中

你建表復制就可以了,例如CREATE TABLE aa AS SELECT * FROM tree;這是完全復制tree表的數據及表結構到aa表中。假如要復制某些欄位的話,如:insert into 表名user(表中欄位sal) select sal from emp;插入某一列sal到user表中,從emp表中獲取sal的數據信息。最後提醒下,Oracle和MySql復製表建表 一樣,可以自己建表結構,再復制數據;也可以復制部分列和部分數據,分開操作。 但要保證數據類型一致,插入指定列數,列數要相同,列的長度空間大就可以了。

Ⅶ 在MySQL中如何復製表

這個確實簡單
mysql支持這種復制
語法:
insert
into
`tb`(`field1`,`field2`..)
select
`field1`,`field2`..
from
`tb`;
注意修改為你自己的表名和欄位名
兩個欄位列表(`field1`,`field2`..)數量要相同
你要全欄位復制,就把除了自增欄位之外的所有欄位都列出來

Ⅷ 如何將mysql的一個完整資料庫全部復制到另外一個資料庫

如果從庫上表 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. 刪除復制過濾,正常啟動復制。

    注意事項:這里要用 mysqlmp --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。

  • 如果是大表,這里可以用可傳輸表空間方式備份、恢復表,減少鎖表時間。