我有一個表名學生的字段,名稱和在my-sql數據庫中滾動。另外,我在MS-SQL數據庫中有一個同名表名的學生,其中包含字段,名稱和卷。發送數據從MySQL到MS-SQL數據庫
當一個值插入到我的MySQL數據庫student表中時,我需要自動將相同的值插入到MS-SQL數據庫student表中。
我有一個表名學生的字段,名稱和在my-sql數據庫中滾動。另外,我在MS-SQL數據庫中有一個同名表名的學生,其中包含字段,名稱和卷。發送數據從MySQL到MS-SQL數據庫
當一個值插入到我的MySQL數據庫student表中時,我需要自動將相同的值插入到MS-SQL數據庫student表中。
爲什麼你使用兩個獨立的數據庫來做同樣的事情?你不能只選一個嗎? 如果您只是試圖導出和導入數據,您應該能夠從一個數據庫導出爲csv並導入到另一個數據庫中,然後僅使用您需要的數據庫。
如果不是,我想你可以編寫一個包裝兩個數據庫對象的類,並實際執行兩個數據庫上的每個查詢。
例如:
public class database
{
public DbConnection mySqlConnection;
public DbConnection sqlConnection;
/// <summary>
/// open two db connections
/// </summary>
public database()
{
mySqlConnection =//string that will open the mysql
mySqlconnection = //insert string will open the sql server database
}
public excecuteNonQuery(String SQL)
{
//cmd1 = mysql command
//cmd2 = mssql command
cmd1.excecute(SQL);
cmd2.execute(SQL);
}
}
而剛剛創建句柄製備命令和插入數據,以使得操作在同一時間上兩個數據庫中執行的功能。我不知道任何將mysql數據庫複製到mssql數據庫的方法。
感謝您的答覆...如果數據遷移不可能..然後我們必須去那solution.Basically,它是最後的解決方案.. – riad 2011-05-10 04:21:07
你可以有一個經常運行的cron來插入它還沒有看到的記錄。
// Assuming the primary key is an id int auto_increment
startId = getLastIdFromPreviousRun();
lastId = 0;
offset = 0;
while(true) {
mysqlrs = mysqlQuery(
"SELECT * FROM users WHERE id > ? ORDER BY id LIMIT ?, 1000",
startId,
offset
);
if (!mysqlrs || mysqlrs.count() == 0)
break;
foreach(mysqlrs as mysqlrow) {
mssqlInsert('users', mysqlrow);
lastId = mysqlrow['id'];
}
offset += 1000;
}
if (lastId) {
setLastIdForNextRun(lastId);
}
感謝您的指導... – riad 2011-05-10 04:39:41
首先,與MySQL和SQL Server相似的是數據類型 - 它們仍然是不同的供應商。這就是爲什麼你所要求的是非常不尋常的......如果你以另一種方式--SQL Server到MySQL,使用鏈接服務器實例很容易。 – 2011-05-10 03:29:13
這意味着。它不可能將數據從MySQL遷移到MS-SQL服務器??請提供建議。也是什麼是鏈接服務器 – riad 2011-05-10 03:38:30