將 .csv 中的值插入數據庫
我們有一個 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'