【Perl】キー重複について(1)
ファイルの内容をDBに更新する際は、
キー重複がないかどうかをチェックしなければならない。
忘れやすいけど重要。
[前提]
下記のようなテーブルが存在するとする。
キー項目は「名称」と「色」。
名称 | 色 | 値段 |
apple | red | 100 |
banana | yellow | 200 |
peach | pink | 300 |
下記のようなテキストファイルが存在するとする。
sample.txt
apple,red,150
banana,yellow,250
peach,pink,350
先ほどのテーブルに対して、ファイル内容で更新処理をすると、
名称 | 色 | 値段 |
apple | red | 150 |
banana | yellow | 250 |
peach | pink | 350 |
となる。
だけど、この時にキー重複の可能性を考えなくてはいけない。
先ほどの場合は、ファイル内容にキー重複がなかったので良かったが、
次のような場合だとおかしくなる。
sample.txt
apple,red,150
banana,yellow,250
apple,red,350
apple,redというキー項目が同一ファイル内で重複している。
値段を150か350かのどちらで更新すれば良いのかわからナス。
こういう時は「キー重複エラー」ということにしている。
「次のキー項目が同一ファイル内で重複しています: apple, red」
みたいなメッセージを出してあげる。
そうすることで謝った値でのDB更新を防げる。
忘れやすいので注意する。
次は、実際のキー重複チェックのコードを書いてみる。