mysql:7973
From: A.K.I. <A.K.I. <aki@xxxxxxxxxx>>
Date: Mon, 30 Jun 2003 20:55:47 +0900
Subject: [mysql 07973] Re: Table の更新について
A.K.I.です。 (Delphiはわかりません) >全くの初心者satoと申します。 >今まで、ParadoxというDataBaseを使っていました。 >レコードの追加の際、二重登録の防止のために >たとえば、もし同じcodeのものがあれば、更新し、 >なければ、レコードを追加したいのですが。 >このような場合SQLでは、 >SELECT ****** >としてみて、もし該当するレコードがゼロなら >INSERT ***** >と、SQLを二回発行するのでしょうか。 INSERT IGNOREで挿入してからUPDATEとか。 (IGNORE指定するとすでにあるレコードは挿入されません) 逆転の発想でDELETEを先に入れて、INSERTするとか。 (以前しょっちゅうやってました) 上記どちらもプログラム側からは一回のSQL発行で済みます。 。。。で、これを書くためにマニュアルを確認中、もうちょっと下 まで読むとそれっぽいのがありました。 REPLACEというのがそのまんまの動きします。ユニークなインデックス かプライマリキーがかぶってる場合削除して挿入、そうでない場合 は単純に挿入してくれます。 http://www.mysql.gr.jp/jpdoc/4.0/manual.ja_Reference.html#REPLACE #初心者だという自己紹介よりは環境の記述の方が数百倍ありがた いのにと思っているのは私だけではないハズ。
7972 2003-06-30 20:02 [sato <satot@xxxxxxxx] Table の更新について -> 7973 2003-06-30 20:55 ┗[A.K.I. <aki@xxxxxxxx] 7980 2003-07-02 09:04 ┗[sato <satot@xxxxxxxx] 7981 2003-07-02 16:19 ┣["Takashi Yamashita" ] 7982 2003-07-02 17:00 ┗[SUGAWARA Hajime <sug]