0

(mysql + C# .net コネクタを使用)

ケース:

table1 入力:

item_id| long_name               |short_name
---------------------------------------------
56763  |MY NEW YORK 34 the great |
76878  |in the paris was really..|

table1 出力:

item_id| long_name               |short_name
---------------------------------------------
56763  |MY NEW YORK 34 the great |NEW YORK
76878  |in the paris was really..|paris

C# コードで short_name を計算します

TRUNCATE+INSERT INTO の代わりに UPDATE を使用してどのように行うことができますか (実際のテーブルには、行ごとに個別の動的な値を持つ 100,000 行を超える行があります)。

4

2 に答える 2

1

You can load the data in a DataTable, update the columns with your C# function and then update the database like:

SqlDataAdapter.Update(Dataset.Tables["table1"]);

This will send an UPDATE statement for every row though. You should think a bit about your architecture. What do you want to achieve? Is it possible to put the logic in a trigger instead of C# code? Can you reduce the number of rows you have to update by putting another condition (recently added, etc.)?

于 2012-10-02T22:04:45.497 に答える
1

「長い名前」から「短い名前」を返すアルゴリズムがあると思います。
したがって、SQL で実装し、MySQL サーバーで実行する必要があります。

アルゴリズムを C# で記述した場合、クライアント プログラム (C# コード) に計算を実行させてから、UPDATEクエリを使用してデータベースへの変更を更新できます。しかし、大規模なデータベースの場合、これは非常に非効率的で時間がかかります (100,000 行をダウンロードするにはかなりの時間がかかります)。そのため、代わりに SQL で記述することを検討する必要があります。

于 2012-10-02T22:05:40.770 に答える