• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数レコードの複数フィールドを一括UPDATE出来ますか?)

複数レコードの複数フィールドを一括UPDATEする方法

kenthyの回答

  • ベストアンサー
  • kenthy
  • ベストアンサー率28% (2/7)
回答No.6

またまた実験してみました。 フィールド名を変えてみたり、型を変えてみたりしましたが、すぐに更新完了しました。 インデックスが原因で遅くなってないでしょうか? インデックスは一意になっていますか? (No.のみに一意制約がかかってますか?) また、現在のテーブルをリネームしておいて、新たに同じ定義のテーブルを作成しなおし、リネームしたテーブルから入れてみてはどうでしょうか?

taaaaaaa
質問者

お礼

出来ました。 新テーブルにユニークキーを設置したら動きました。 テーブルを見直してみたところ、 主テーブル...Noがプライマリーキー 新テーブル...他コードがプライマリーキー、Noはキー設定なし。 となっていました。 キー設定のあるなしでこんなに動作に違いが出ると思いませんでした。 これでデータの更新は簡単に行えるのでひとまず安心しました。 本当にありがとうございました。

関連するQ&A

  • ACCESSで一括レコード更新

    あるテーブルのレコードを、別のテーブルのレコードで更新したいです。具体的には、 二つのテーブルは同じフィールドを持っています。 フィールド名はID、名前、住所、電話で構成されています。 テーブルA  001 山田 東京 123456  002 田口 千葉 234567  003 鈴木 埼玉 345678  004 斉藤 佐賀 456789  005 上野 大阪 567890 テーブルB  003 鈴木 長野 345678  004 斉藤 佐賀 890123  008 野口 京都 090909 テーブルAとBでIDが一致するレコードだけテーブルAのレコード をそっくり入れ替えるにはどうしたらいいでしょうか。 この場合、003と004のレコードだけ更新します。 テーブルAのIDは主キーでオートナンバー型になっています。

  • 複数レコードのテーブルであるレコードだけ増やしたい

    お世話になります。 複数レコードがあるテーブルにて、あるレコードだけカウントアップする為のSQL文はどのように記述すれば良いでしょうか? 要件: テーブル名'名簿'の No, 名前, 更新者, 備考に 01, 芥川龍之介, ほげ太, NULLを入力し 備考は書き込みさせるためとりあえずNULLを代入しておき 名前と更新者は同じで、Noの部分だけを01~10までカウントアップさせたい 何卒、ご教授のほど、宜しくお願いします。

  • 1テーブル内レコードの各フィールド値の差分チェック

    お世話になります。 現在、1テーブル内をログテーブル用として利用しています。 JSPでフォームを作成して各フィールド値を、 Webサイト画面上から変更可能なつくりにしており、 複数あるいずれかのフィールドの値を1つ以上変更してから、 [保存]ボタンを押下した際に、   ↓ その変更前のレコード1件と、 変更後のレコード1件を、 同じログ用テーブル内へフラグ(変更前:0、変更後:2)を それぞれ変えて、 INSERT INTOでレコードを計2件追加しています。 (あわせて、追加時のタイムスタンプをセットするフィールドもあるので、  どんどんレコードを追加可能な仕様です) そこでご質問なのですが、 この2つのレコードのみを比較して、 値が異なるフィールド名のみを、 (ときには複数フィールドにおいて値が異なるケースも有ります) SELECTなどで表示させるようなSQL文の 作り方をご存じの方がいらっしゃいましたら、 ぜひ教えてください。 なぜこのようなご質問をさせていただいたかと申しますと、 ログテーブル内の上記した2件のレコードを比較して、 どこのフィールドの値が変更されたか? を確認する際に利用したい為です。 (確認時には、phpMyAdminツールなどで直接SQL文をたたいて実行予定です) 以上、宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • 複数フィールド対してLIKE '% %' したい

    SQL初心者なのですが、複数のフィールドをターゲットにしたフリーワード検索用のSQL文の書き方が解らず困っております。 例えば以下の様に"責任者"フィールドを限定して"田中"さんを探す事は出来るのですが、 ---------------------------------------------------------------- SELECT * FROM `会員表` WHERE 責任者 LIKE '%田中%' ---------------------------------------------------------------- 複数の、例えば以下の3つの ●責任者フィールド ●担当者フィールド ●顧客フィールド 全てを対象に一括で”田中”さんを検索したい場合、 どのように記述すれば良いのでしょうか? どなたか有識者の方いらっしゃいましたら宜しくお願いします!!

    • ベストアンサー
    • MySQL
  • アクセスのフィールドデータを一括削除したい

    アクセスのテーブルで、複数のフィールドにある、データのみを一括して削除したいのですが、方法はあるでしょうか。 たとえば顧客テーブルで、 「顧客番号」や「顧客名」「TEL」などのフィールドに格納されている基本データは温存します。 そして、過去の取引履歴として「最終請求日」や「最終入金日」など、複数のフィールドに格納されているデータのみを削除したいのです。 フィールド自体は削除しません。 複数のフィールド(列)を選択して右クリックすると、[ 選択したフィールドデータの削除 ]といったメニューが出ると良いのですが。 全ての顧客に対して、この作業を一括して行ないたいのですが可能でしょうか。      

  • access・複数のテーブル・重複除外したデータ

    accessで複数のテーブルで重複しないレコードだけを抽出するSQL文を知りたいです。 フィールドは多数あり、「フィールドの内容が全て一致するレコード」以外のレコードを 重複しないレコードとして抽出したいと思っています。 テーブルは3つ以上ありますが、2つのテーブルで実行するSQL文でかまいません。

  • Accessで、複数のテーブルで随時、レコードを増やすには…

    Accessを使って、複数のテーブルにリレーションを付けて顧客データベース作りました。 顧客は随時増えていくので、一つのテーブルにレコードを追加したときに、他のテーブルのレコードもそれに連動して、増やす方法はないでしょうか? 現在は、各テーブルに予め十分な(余分な)顧客番号を設定し、顧客増加に対応しています。

  • Access2003複数フィールドの文字数合計

    複数のフィールドに入力されている文字列(数値や文字)の文字数をカウントし、そのレコードごとの合計を1回の更新クエリで算出する方法があれば教えてください。 =========================================================== ☆1つのレコードにA~Eのフィールドがあり、全角・半角の文字および英数字のデータが混在しています。(データの入っていない場合は「null」となる) (例) No  [A]       [B]     [C]       [D]       [E] 1  東京都   港区   ○○1丁目  1-2-3   ●×マンション101 2  神奈川県  横浜市  ○○○町   10-10   △△ビル10F  3    〃      〃     〃       〃        〃    =========================================================== (1) これらの各フィールドの文字数を「LEN関数」を使って、新たなフィールドF~Jに文字数を表示する (2) そして、上記のF~Jの文字数を「SUM関数」を使って、フィールドKへ合計数を表示しています。 (例) No  [F]  [G]   [H]  [I]  [J]   [K] 1   3   2   5   5  10    25 2   4   3   4   5   7     23     =========================================================== 現在は、上記のように、各フィールドの文字数を出してから合計数を計算していますが、 この合計数[K]の値を、フィールドF~Jを作成しなくても一度で計算できるような関数式があれば教えてください。 私は、SQLが書けないので、フィールド欄へ関数式を入力しておりますが、 関数だけでは出来ない場合は、SQLで教えていただければ幸いでございます。 お手数お掛けしますが、宜しくお願い致します。

  • 複数のレコードの値を取り出すには

    初心者です。あるカラムから複数のレコードの値を取り出すにはどのように書けばよいかどなたか教えていただけますでしょうか。 下記のコードではcalendartblというテーブルから1レコードのみ取り出せます。 テーブル:calendartbl holiday(カラム名) 2016/9/12(レコード1行目) 2016/9/14(レコード2行目) 2016/9/20(レコード3行目) 2016/9/26(レコード4行目) 2016/9/28(レコード5行目) コード: $sql = "SELECT calendartbl.holiday FROM calendartbl"; $ret = f_db_select($sql); foreach ($ret as $h){ $holiday = $h['holiday']; } 結果=2016/9/12 では複数のレコード、つまり「2016/9/12、2016/9/14、2016/9/20、2016/9/26、2016/9/28」を取り出して、上記の$holidayに代入させるにはどのように書けばよいでしょうか。 どなたか教えて頂けたら幸いです。 よろしくお願い致します。

    • 締切済み
    • PHP
  • アクセスの複数フィールドからの抽出について教えてください。

    「テーブル1」があり、「テーブル1」の中にフィールドA、フィールドB、フィールドC、フィールドDがあります。  その4つのフィールドの中のどれにも”あ”という言葉が含まれていないレコードを探しだしたいのですが、クリエでOR検索してもうまくいきません。  フィールドAに”あ”は無くても、フィールドBかフィールドCに”あ”といいう文字が含まれているものが出てきてしまいます。どうしてでしょう・・・  ちなみにSQL文は SELECT * FROM TABLE1 WHERE ((Not (TABLE1.フィールドA)="あ")) OR ((Not (TABLE1.フィールドB)="あ")) OR ((Not (TABLE1.フィールドC)="あ")) OR ((Not (TABLE1.フィールドD)="あ"));  となっています。明らかに初歩的な問題だと思われますが、初心者のため分からず困っております。  アドバイス、よろしくお願いします。