ここから本文です

SQLでINSERTすると過去のレコードも更新されてしまいます

yuu********さん

2019/8/2323:08:26

SQLでINSERTすると過去のレコードも更新されてしまいます

入退室管理システムの入退室履歴を管理するテーブルでユーザーが入室した時に

メールアドレスや入室時間をいれたり、入室したという意味でflagを1にしたいんですが、

普通にINSERTすると、過去に入室、退室した時のflagも更新されてしまってうまくいきません。

どうすれば過去の履歴を更新せずにすむか教えてください。

閲覧数:
13
回答数:
4
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tezcelloさん

2019/8/2323:17:15

> 普通にINSERTすると、過去に入室、退室した時のflagも更新
INSERT ~
という SQLを投げたのに、対象外のレコードが更新されるなんて事があるとは思えないです。
入退室処理に更新処理が紛れているか、DB側にトリガなどが仕込んであるとか、細部・深部まで確認が必要だと思います。

質問した人からのコメント

2019/8/24 14:58:16

ソースコードよく見たらUPDATE文も作っちゃってました(笑)
ありがとうございました!

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

原沢信道さん

2019/8/2408:59:36

INSERTは登録するだけの命令ですので、既に登録されているデータは更新出来ません。更新するのはUPDATEのみですので、何か勘違いされている事と推測します。再度確認をしてみて下さい。

pdp********さん

2019/8/2401:13:55

それ、INSERTじゃなくWHERE文が漏れているUPDATE文を実行していないですか?

ここに例のSQLを貼ってください

プロフィール画像

カテゴリマスター

nan********さん

2019/8/2400:26:57

普通はそんな事は起こりません。
少なくともSQLでinsertを投げて他のデータが更新される事はありません。
なんらかのプログラムでその処理を書いているなら、どこかにupdateを投げている部分があるはずです。

ただし一つ例外があって、insertにon duplicate keyのオプションを付けている場合は、キーが一致するものは更新もあり得ます。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる