- ベストアンサー
主キーの変更
OracleBronzeのSQL基礎の本に 「一般的に主キーの値は変更できない。」 とあるのですがこの一般的にというのは子レコードが存在する場合でしょうか? 子レコードを持たない主キーをUpdate文で更新してみましたが、すんなり更新できたのですが・・・
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- 主キーの変更
次のようなテーブルが存在します。レコードはあくまで参考の値です。主キーについては必ず一意の値になるようにしています。 代理店sample1がIDを紛失し、再発行を依頼された場合や,その下の顧客店やこきゃくがIDを紛失し、再発行をする場合に既存のデータをそのまま保持したまま主キーだけを変更して関連された他のテーブルに一斉に反映させるにはどうすればよいでしょうか? ここには記載していませんが顧客店IDやこきゃくIDに関連する別テーブルが10ほど存在します。 主キーが存在するレコードと重複していないかをまずチェックしてそこから基礎となるテーブルに書き換えを行いと考えているのですが、思考がそこで止まってしまっています。 よろしければアドバイスをよろしくお願いいたします。 代理店テーブル |代理店ID(主キー) |代理店名| | aaaaa | sample1| | bbbbb | sample2| 顧客店テーブル |代理店ID(主キー) |顧客店ID(主キー)|顧客店名| | aaaaa | a-00001| ○○1店| | aaaaa | a-00002| ○○2店| | bbbbb | b-00001| △△1店| | bbbbb | b-00002| △△2店| 顧客テーブル |顧客店ID(主キー) | こきゃくID(主キー)| こきゃく名| | a-00001| a-20071015-00001| Aさん | | a-00002| a-20071015-00002| Bさん | | b-00001| b-20050915-00001| Cさん | | b-00002| b-20050915-00002| Dさん |
- 締切済み
- Oracle
- Access 主キーの変更について
調査データの集計、蓄積用のDBを制作しております。 制作しているDBは主キーに県コードが含まれています。 そのため、調査データの住所に変更があるとコードを変えなければなりません。 AccessでのDBはほぼ完成しており、今からコードの形態を変更することは避けたいです。(もともと古い独自のDBのデータを流用しています。) 現在、主キーに県コードが含まれていますが、それとは別に県コードフィールドを設けています。 ※コードの形態 (先頭の二桁又は一桁が県コード、コードは4桁又は5桁) 例 主キー 北海道 1001 東京 13199 沖縄 47001 新規のデータを入力する際に主キーを入力しているのですが VBAの知識がないので県コードは個別に入力しています。 住所が変わり県が変更になった場合主キーを変更する必要が あるのですが一対多でリレーションシップをいくつもしてあり サブフォームなども使用してます。 主のフォームで主キーを変更した場合、関連付けられたレコードの主キーも変更されるようにしたいのですが可能でしょうか?
- 締切済み
- オフィス系ソフト
- 10レコード目の主キーの値を取得したい場合
Debug.Print Me.Form.CurrentRecord これで現在のレコードが取得でき、 Debug.Print Me.Form("主キー").Value これで現在のレコードの主キーの値が取得できるのですが、 例えば、10レコード目の主キーの値を取得したい場合は、 どのようなコードになるのでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 主キーの飛び番について
お尋ねします。レコードの追加削除を繰り返すと、次に追加する際に主キーIDが飛び番になってしまう。ID:1,2,4,6,7 などになりますが、次回、追加する際、飛び番を埋めるIDを 自動で探し出すsql文などあるのでしょうか? for文などで自分で飛び番を探すしかないのでしょうか?
- 締切済み
- Oracle
- ON DUPLICATE KEY UPDATE
こんにちは。 PHP + MYSQL でシステム構築をしております。 この度は、新しいレコードを INSERT するが、もしもINSERT するレコードのうちの主キーが既に存在する場合は、UPDATE を行うという処理をしたいと思っています。 調べているうちに MySQL 4.1.0 の新機能である ON DUPLICATE KEY UPDATE 節というものがありましたが、4.1.0以前の MYSQL を利用の場合はどのようにするのが最適でしょうか? 私が考えたのは、挿入前に主キーを持つレコードを読み込んで、レコードが返ってこなかった場合は INSERT、何かレコードが返ってきた場合は UPDATE というようにする方法ですが、少し回りくどい気もします。 クエリのみで、またはシンプルな方法でこれを解決する方法はありますでしょうか? ご教授お願いいたします。
- 締切済み
- PHP
- 複数のフィールドを含む主キーに関して教えてください。
SQLで、主キーが複数のフィールドを含む場合、 PRIMARY KEY ( col1 , col2 ) 一般にどのようなインデックスが作成されるのでしょうか? またその結果を見れば分かるかも知れませんが、キーの順番は意味を持っているのでしょうか。 Mysqlに限定されてもかまいません。 よろしくお願いします。
- ベストアンサー
- MySQL
- Accessの主キーについて
お願いいたします。 Accessの主キー設定について教えてください。 主キーの役割は、テーブルの中のレコードを区別 するための機能だと思いますが、 フィールドのデータ型をオートナンバー型にして おけば主キーの設定は必要ないのではないでしょう か? 主キーを設定する理由としては、参照整合性のため に行うという考え方で良いでしょうか? また、複数の主キーを設定するという場合のテーブ ル構成はどのような場合のシステムなのでしょうか? どうぞ教えてください。
- 締切済み
- その他(データベース)
- 主キー、インデックスが作成できない
お世話になります。 SQLserver2000とACCESS(フロント)で使っております。 主キーもインデックスも設定していなかったテーブルに エンタープライズマネージャから主キーを設定しようとしたのですが、保存しようとすると以下のエラーが出てしまいます。 もともと更新クエリを作成したのですが、”更新可能なクエリであることが必要です。”とエラーが出てしまい、いろいろ調べるうちに主キーを設定していないから??と思い、設定しようとしたのですがうまくいきません。。宜しくお願いします。 ■エラー内容 テーブル 'テーブル名 (ユーザー名)' - インデックス 'インデックス名' を作成できません。 ODBC エラー : [Microsoft][ODBC SQL Server Driver][SQL Server]インデックス ID 1 で重複したキーが見つかったので、CREATE UNIQUE INDEX は終了しました。もっとも重要な主キーは 'XXXX-00XXXX-00-A1 ' です。 [Microsoft][ODBC SQL Server Driver][SQL Server]制約を作成できませんでした。以前のエラーを調べてください。 [Microsoft][ODBC SQL Server Driver][SQL Server]ステートメントは終了されました。
- ベストアンサー
- SQL Server
- 外部から取り込んだテーブルに主キーを設定するには
外部から取り込んだテーブルに主キーを設定するには sql server 2000 のデータベースにsqlserver 2008 express editionをインストールしたPCで別のデータベースのテーブルをインポートウィザードにて取り込み、そのテーブルに主キーを設定しようと、新しいログイン名で-ログイン-セキュリティ-ユーザー-プロパティの画面でセキュリティ保護可能なリソースを選択し、オブジェクトの列の権限にて更新、選択、等許可に設定しても、テーブルの変更が(主キーの設定)ができません。 この変更は、もともと無理なことなのでしょうか。そうだとしたら他にテーブルの列設定を変更する方法はないのでしょうか どうかご教授お願いします。宜しくお願いします。 PC os XP pro (sql server 2008 express edition) サーバー WINDOWS 2000 server SQL server 2000
- 締切済み
- SQL Server
- テーブルに主キーを作らないデメリットは?
アクセスのテーブルを作るにおいて 主キーのフィールドを作らなかった場合、 どのようなデメリットや不都合がありますか? 既にいくつか主キーのないテーブルを作ってしまいました。 このまま運用しようか主キーを作るべきか悩んでいます。 SQLサーバーに移行する場合などにエラーになるのでしょうか?
- ベストアンサー
- その他MS Office製品
- アマゾンから異常なアクティビティが検出されたメールが届いた場合、注文とアカウントが停止されている可能性があります。
- 本メールに記載されている注文番号とIPアドレスを確認し、グーグルで調査することをおすすめします。
- このようなメールはフィッシングメールの可能性もあるため、注意が必要です。
お礼
丁寧に説明して下さりありがとうございます!