Sybase

將 .csv 中的值插入數據庫

  • October 25, 2019

我們有一個 sybase 數據庫,執行我們的使用者使用的包含客戶端資訊的應用程序。

情況是大約 1000 個客戶的地址資訊已經過時。我們得到了一個包含更新地址資訊的 .csv 文件,並被要求更新數據庫中的地址。

我已經過濾了 csv 以比較 2 個地址列,並且只顯示那些不一樣的列。所以我有一個 .csv 文件,其中只包含需要更新地址的客戶。

所以想像一下這個客戶資訊存在於一張桌子上。我們還有唯一的客戶 ID 以及客戶表上的其他個人資訊。

我不是 SQL 專家,所以我對 sql 的查詢語法可能有問題,但是有人對我如何為此編寫查詢有任何建議嗎?

就像是,

為每個輸入

$$ client_id in .csv column A $$ $$ address_info in .csv column B $$TO clientAddress.table 這就是我想像它無論如何都會在我腦海中發揮作用的方式。我試著四處尋找,但找不到任何與我的情況相似的人。

這是我使用的解決方案。對於此範例,要上傳的更新資訊位於名為 updatefile.csv 的文件中。該表稱為 multi_addresses。數據庫中正在更新的文件中的列是地址、地址_2、城市、州等。對我來說效果很好。

更新 multi_addresses、updatefile SET multi_addresses.address=updatefile.address、multi_addresses.address_2=COALESCE(updatefile.address_2, ‘’)、multi_addresses.city=updatefile.city、multi_addresses.state=updatefile.state、multi_addresses.zipcode=updatefile.zipcode WHERE multi_addresses.names_id=updatefile.names_id AND multi_addresses.name_location=updatefile.name_location AND multi_addresses.addr_type=updatefile.addr_type

SELECT multi_addresses.* FROM multi_addresses RIGHT JOIN updatefile ON multi_addresses.names_id=updatefile.names_id AND multi_addresses.addr_type=updatefile.addr_type

USING FILE子句用於從文件載入數據。列列表顯示要從.csv文件中導入的兩列。

LOAD TABLE clientAddress.table (client.id, address.info) 
USING CLIENT FILE 'file.csv'

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