好きなおでんの具材ドラフト会議しましょう

こんにちは。
主キーないしユニークキーなどで、
重複しない設定にしたフィールドで、
重複データを入力されたとき、
入力できないのではなく、上書きされる、
設定にしたいのですが、
どのような方法が、あるでしょうか。
(いちいち、古いデータを削除しなければ、
ならないのでしょうか。)
お願いします。

A 回答 (5件)

こういう事情は最初に説明しなきゃ


あるテーブルの値で既存のテーブルを書き換えたいのなら更新クエリです

INSERじゃなくUPDATEね

既存テーブルと書き換えデータを持ったテーブルを
クエリデザインビューに取り込み、主キーで結合
既存テーブルから主キー以外を取り出し
更新クエリに変えて、レコードの更新欄に書き換えデータテーブルのフィールドを指定します
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
やっぱり、既存の方法で繰り返し行うしか、
ないようです。
経験者の意見が聞けて、参考になりました。

お礼日時:2007/07/11 14:26

もしMySQLなら、REPLACEがあります。


データがなければ、INSERTとしてはたらき、
データがあれば、UPDATEのような動きをします。
(※厳密にはいろいろ制限はありますが)

他のDBに有効かどうかはしりません
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
Accessを使っています。
MySQLのREPLACEコマンドは、途中で知りました。
Accessにないのは、残念です。

お礼日時:2007/07/11 14:27

「その他(データベース)」というカテゴリに、使用しているDBMS名を明記しないで質問されることは、利用者として非常に迷惑なのですが、そのことを理解しているでしょうか?



質問のタイトルに、使用しているDBMS名と、質問内容の概略のキーワードを最低限、記すことを希望します。
そうでないなら、他の利用者に対する迷惑行為と判断されても、仕方ないことを理解してください。
    • good
    • 0

出来ないといっているわけじゃないですよ



重複さえしなきゃいい、何でもかんでも書き変えていいのなら
いったん、非連結のフォームか、ワークテーブルに入力し
重複を調べて、重複なら更新、新規なら追加というような手順になります
(データの整合性チェックなどかなり大量のコードを書くことになります)

しかし、データベースでは入力されているレコードを
逐次更新するというようなテーブルの使い方はあまりしません
入力日時などを付加して新しいレコードとして追加していきますね
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
説明不足だったかもしれませんが、
あるテーブルに別のテーブルデータを
追加する際に、主キーたるID(日時です)の
重複するデータがいくつか、含まれていました。
主キー以外の部分では、追加するデータの
方が、正しいのです。
これを一回のINSERT文で、済ませたかったので、
主キーが同じデータの上書き、というものが
ないかと、考えました。

しかし、CHRONOS_0さんの説明で、どうやら、
無理らしいことがわかりました。
それなら、別の方法を、考えようと思います。

お礼日時:2007/07/01 21:49

データの整合性を保つためにわざわざ設けた制限を無視するのですか?


必要のないものならそのような制限そのものを設けない
というほうがまともな考え方だと思いますが・・・・
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
重複ありとすると、そのフィールドにつき、
2つのデータが出来てしまいます。
データは、ひとつですが、後から入力されたほうに
上書きされれば、便利と、思ったのですが。

お礼日時:2007/07/01 17:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


おすすめ情報