您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關SQLServer中怎么導出數據到MySQL,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
1從SQLServer導出數據
執行BCP: bcp "..." queryout "F:\test.txt" -c –S1.2.3.4 -Usa -P1111 命令參數含義: (1) 導入。 這個動作使用in命令完成,后面跟需要導入的文件名。 (2) 導出。 這個動作使用out命令完成,后面跟需要導出的文件名。 (3) 使用SQL語句導出。 這個動作使用queryout命令完成,它跟out類似,只是數據源不是表或視圖名,而是SQL語句。 (4) 導出格式文件。 這個動作使用format命令完成,后而跟格式文件名。 下面介紹一些常用的選項: -f format_file format_file表示格式文件名。這個選項依賴于上述的動作,如果使用的是in或out,format_file表示已經存在的格式文件,如果使用的是format則表示是要生成的格式文件。 -x 這個選項要和-f format_file配合使用,以便生成xml格式的格式文件。 -F first_row 指定從被導出表的哪一行導出,或從被導入文件的哪一行導入。 -L last_row 指定被導出表要導到哪一行結束,或從被導入文件導數據時,導到哪一行結束。 -c 使用char類型做為存儲類型,沒有前綴且以"/t"做為字段分割符,以"/n"做為行分割符。 -w 和-c類似,只是當使用Unicode字符集拷貝數據時使用,且以nchar做為存儲類型。 -t field_term 指定字符分割符,默認是"/t"。 -r row_term 指定行分割符,默認是"/n"。 -S server_name[ /instance_name] 指定要連接的SQL Server服務器的實例,如果未指定此選項,BCP連接本機的SQL Server默認實例。如果要連接某臺機器上的默認實例,只需要指定機器名即可。 -U login_id 指定連接SQL Sever的用戶名。 -P password 指定連接SQL Server的用戶名密碼。 -T 指定BCP使用信任連接登錄SQL Server。如果未指定-T,必須指定-U和-P。 -k 指定空列使用null值插入,而不是這列的默認值。
2導入數據到MySQL 執行Load Data命令: load data local infile "F:/test.txt" into table table1character set gbk; 命令參數含義: load data [low_priority] [local] infile 'file_name txt' [replace |ignore] into table tbl_name [fields [terminated by't'] [OPTIONALLY] enclosed by ''] [escaped by'\' ]] [lines terminated by'n'] [ignore number lines] [(col_name, )]
2.1 Low_priority 如果你指定關鍵詞low_priority,那么MySQL將會等到沒有其他人讀這個表的時候,才把插入數據。
2.2 Local 如果指定local關鍵詞,則表明從客戶主機讀文件。如果local沒指定,文件必須位于服務器上。
2.3 Replace & Ignore replace和ignore關鍵詞控制對現有的唯一鍵記錄的重復的處理。如果你指定replace,新行將代替有相同的唯一鍵值的現有行。如果你指定ignore,跳過有唯一鍵的現有行的重復行的輸入。如果你不指定任何一個選項,當找到重復鍵時,出現一個錯誤,并且文本文件的余下部分被忽略。
2.4分隔符 terminated by描述字段的分隔符,默認情況下是tab字符(\t) enclosed by描述的是字段的括起字符。 escaped by描述的轉義字符。默認的是反斜杠(backslash:\) lines 關鍵字指定了每條記錄的分隔符默認為'\n'即為換行符
2.5導入部分列 load data infile可以按指定的列把文件導入到數據庫中。當我們要把數據的一部分內容導入的時候,,需要加入一些欄目(列/字段/field)到MySQL數據庫中,以適應一些額外的需要。比方說,我們要從Access數據庫升級到MySQL數據庫的時候 下面的例子顯示了如何向指定的欄目(field)中導入數據: load data infile "/home/Ordertxt" into table Orders(Order_Number, Order_Date, Customer_ID);
2.6相對&絕對路徑 (1)如果給出一個絕對路徑名,服務器使用該路徑名。 (2)如果給出一個有一個或多個前置部件的相對路徑名,服務器相對服務器的數據目錄搜索文件。 (3)如果給出一個沒有前置部件的一個文件名,服務器在當前數據庫的數據庫目錄尋找文件。 例如: /myfile txt”給出的文件是從服務器的數據目錄讀取,而作為“myfile txt”給出的一個文件是從當前數據庫的數據庫目錄下讀取。 2.7字符集 character set gbk指定字符集為gbk,與文件的編碼格式(ANSI)保持一致。否則中文數據導入后可能變為亂碼。
2.8靈活導入 可以在導入的同時,插入一些其他列: load data local infile "F:/test.txt"into table table1 set pin='zs',create_date=current_timestamp;
3常見問題
3.1無法運行Load Data命令 執行load data localinfile時報錯: The used command is not allowed with this MySQL version 解決方法是:啟動mysql客戶端是加上--local-infile=1參數 $ mysql --local-infile=1 –uroot –p123 –h 127.0.0.1
3.2用BCP導出UTF-8格式 解決方法是加上-C選項: $ bcp "query sql…" queryout "F:\test.txt" -c -C65001–S1.2.3.4 -Usa -P1111mysql導入數據load data infile用法
看完上述內容,你們對SQLServer中怎么導出數據到MySQL有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。