[前][次][番号順一覧][スレッド一覧]

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]