• ベストアンサー

INSERT操作で出るエラー

perlのDBIを使いDBに接続してINSERTしようとしました (Postgresです)。 INSERT操作は成功したのですが、同じ数字を挿入させたら 上書してしまいます。 このときはエラーを返すというプログラムはどうすればよいのですか? 本で調べたら、つかえそうな$h->stateをみつけましたが使い方がのって いないし現在理解できていない状態です。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#2494
noname#2494
回答No.1

>INSERT操作は成功したのですが、同じ数字を挿入させたら 上書してしまいます。 PostgreSQLはやったことがないのですが PostgreSQLはそうなんですか? 普通、Insert文とUpdate文があって、Insert文で既存のレコードを上書きしようとすると、多分エラーが出ますよ。 もしでない場合には、事前に該当するレコード数を取得しておくことにより判別出来ると思いますよ。私はエラーはこまるのでこんな感じでやっています。 つまり、最初に Select Count(*) From ATable で、数を取得して、0ならば、Insert、1以上ならばエラーにするとか…

その他の回答 (1)

回答No.2

>INSERT操作は成功したのですが、同じ数字を挿入させたら >上書してしまいます。 上書されていることをどうやってチェックしましたか? 1. DBIがエラーを返しているが、それをチェックしていない 2. その数字が入るカラムが primary key でないので、正常動作 (同じ値であっても、いくらでもinsertできる) のどちらかかと思われます。 tableがどのように設定(設計)されているかわかりませんが、 質問内容でわかるのはこれくらい。 河馬屋二千年堂さんとこのDBI和訳ページのリンクをはっておきます。 Perlの小技 http://member.nifty.ne.jp/hippo2000/perltips/index.htm 下はその中のDBIのページ

参考URL:
http://member.nifty.ne.jp/hippo2000/perltips/dbimemo.htm

関連するQ&A