###タイトルの件についてご質問です
データベースにカラムを設定する際、
A_Iと主キー(それぞれ名前が長いので省略させていただきます)を設定しているのですが、
主キーの働きが理解できません。
<自分が調べた結果の解釈>
A_Iは登録するデータの重複が無いように自動でidを振り分ける機能
主キーは登録したデータに仮に同じデータがあったとしても、重複がないように識別しているもの?
自分の解釈ではA_Iだけでいいのでは?と思っております。
教えてください。よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
主キーは、ユニーク制約やインデックス等を提供します。
A_Iは、これに自動インクリメント機能を付け加えるだけです。
A_Iだけだと、ユニーク制約もなければ、インデックス機能もありません。
これでは使い物にならないので、主キー等のユニークカラムにしか設定できなくなっています。
また、主キーはデータ型に制限がありませんが、A_Iは整数型にしか使えません。
主キーを整数連番にすることが多いので、結果的にA_Iとセットにして使うことが多いだけです。
投稿2017/12/26 06:04
総合スコア29
0
ベストアンサー
- INSERT時に自動で値を振って登録してくれるのが、AUTO_INCREMENT
- すでに存在する値をINSERTしようとした時にエラーで登録させないのが、主キーによる制約(正確には一意性制約)
投稿2017/12/26 06:36
総合スコア421
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/26 08:12
2017/12/26 09:06
0
autoincrementはユニーク制約が必要ですので
いずれにしろ主キーかユニークキーの属性をつける必要があります。
主キーの本来の目的であるレコードを特定するIDの機能を補足するための
機能だと考えれば良いと思います
投稿2017/12/26 04:18
総合スコア114839
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/26 04:42
2017/12/26 05:11
2017/12/26 07:03
2017/12/26 08:18
2017/12/26 08:32
2017/12/26 09:07
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/26 07:01
2017/12/26 07:08
2017/12/26 07:18
2017/12/26 08:12
2017/12/26 09:08