2016-03-03 159 views
1

我正在將數據導入到使用MySQL的應用程序中。數據來自MS SQL。因爲表名在MS SQL數據庫中每個月都有變化,所以除了從其他表中獲取數據之外,我們還使用存儲過程來連接表名。使用存儲過程將數據從MS Sql導入到MySQL

問題是,我們似乎失去了MS SQL端的PK標識符,所以我的MySQL數據庫不會接收數據。我們應該使用視圖嗎?有沒有辦法在存儲過程中保留PK身份。謝謝。

這裏是我的問題的一個更好的解釋: 1.主機數據庫表名更改每個月(YYYYMMtablename) 2.需要從兩個表 選擇列3.國外數據庫(MySQL的)需要像一個SELECT查詢,b,c,d,來自表名 4.我無法改變我的應用程序的工作方式,但我可以對數據庫進行更改。

回答

0

您可以在SQL Server和MySQL的插入語句中指定標識值。

MySQL允許你顯式插入標識值,所以你實際上不需要IDENTITY_INSERT選項,換句話說它總是在MySQL中設置。 MySQL forums

對於MS SQL Server中,請仔細閱讀SET IDENTITY_INSERT (Transact-SQL)文檔。

+0

也許我還不夠清楚。存儲過程需要將pk信息覆蓋,以便我的db可以接受它。我無法改變用於將數據導入My(MySql)db的java代碼。不過謝謝。 –

+0

您只需將該列添加到檢索數據並在插入中使用該值的select語句即可。如果你不能選擇列,那麼你需要神祕的魔力來猜測值;) –

+0

裏卡多,是pk的列在存儲過程中。但是由於數據操作(也從另一個表中檢索信息),似乎pk列沒有保留它作爲pk的身份。 –

相關問題