Sql-Server

在沒有 Workbench 的情況下將 SQL Server 數據移植到 MySQL

  • August 22, 2017

MySQL Workbench用於將數據從 遷移SQL Server到 時,MySQL我遇到了一個無法逃脫撇號的錯誤。在此期間,我仍想移植該數據。有什麼簡單的方法可以做到這一點嗎?

我已將數據導出到帶有語句的文件中,但它們與(I’s new to )INSERT的語法不匹配,所以我不知道它是否有效,文件在每個語句的末尾也不包含分號.MySQL``MySQL

提前致謝。

更新

因此,到目前為止,看起來最簡單的方法是將數據導出到平面文件中並遍歷每個表,並確保還生成一個SSIS文件,您可以使用該文件來自動化未來的導出。像這樣:

DTExec /File MyExportedSissFileForOneTable.dtsx

然後使用PowerShell或其他一些腳本語言來完成您需要更新的所有不同文件。然後導入文件MySQL- 我還沒有弄清楚。

回想起來,使用我自己的轉換器可能會更好,因為MySQLusessnake case而不是title caselike SQL Server

所以,我要做的是使用這樣的PowerShell腳本:

$tables = "FirstTable", "SecondTable"
function script {
   param(
       [System.String] $table
   )
   "set nocount on; select * from dbo."+$table
}

$tables |
% {
  $path = "C:\Data\"+$_+".txt"
  $script = script $_
  sqlcmd -S MyServer -d MyDatabase -W -h -1 -E -Q $script -s `"`t`" -o $path
}

這將從我的SQL Server數據庫中導出所有數據並將它們放入文件中,然後我會將這些文件導入到MySQL. 我還沒有完全弄清楚。我讓MySQL Workbench做最初的CREATE TABLE陳述,並用來Vim做一切蛇案例。

在 SQL Server 上,bcp out.

在 MySQL 上,LOAD DATA INFILE.

對於移動數據,你看過bcp嗎?它是 SQL Server 的“批量複製程序”。 https://docs.microsoft.com/en-us/sql/tools/bcp-utility。將行和列終止符設置為數據中不存在的東西 ~EOC~ ~EOR~ 等。

您可以LOAD DATA INFILE在 MySQL 上使用“”來批量載入平面文件。再次設置行和列終止符。

https://dev.mysql.com/doc/refman/5.7/en/load-data.html

我會為此使用普通的批處理文件,因為我總是在使用 PowerShell 呼叫某些執行檔時遇到問題,通常是在傳入參數時。

引用自:https://dba.stackexchange.com/questions/183757